当前位置:首页 > jquery

jquery 遮罩层

2026-02-03 14:44:17jquery

jQuery 遮罩层实现方法

使用 jQuery 实现遮罩层可以增强用户体验,通常用于模态框、加载提示或阻止用户操作。以下是几种常见实现方式:

固定全屏遮罩层

// 创建遮罩层
$('body').append('<div id="mask" style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:9998;display:none;"></div>');

// 显示遮罩
$('#mask').fadeIn();

// 隐藏遮罩
$('#mask').fadeOut();

带内容的模态遮罩

// 创建遮罩和内容容器
$('body').append(`
  <div id="mask" style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);z-index:9998;display:none;">
    <div style="position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;padding:20px;z-index:9999;">
      这里是内容
      <button id="closeBtn">关闭</button>
    </div>
  </div>
`);

// 显示和隐藏控制
$('#showModal').click(function() {
  $('#mask').fadeIn();
});

$('#closeBtn').click(function() {
  $('#mask').fadeOut();
});

页面加载遮罩

$(document).ready(function() {
  $('body').append('<div id="loadingMask" style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(255,255,255,0.8);z-index:9999;text-align:center;padding-top:20%;"><img src="loading.gif" alt="加载中..."></div>');

  $(window).on('load', function() {
    $('#loadingMask').fadeOut();
  });
});

进阶功能实现

禁止滚动穿透

// 显示遮罩时锁定滚动
$('#mask').fadeIn();
$('body').css('overflow', 'hidden');

// 隐藏遮罩时恢复滚动
$('#mask').fadeOut();
$('body').css('overflow', 'auto');

ESC键关闭遮罩

$(document).keyup(function(e) {
  if (e.keyCode === 27 && $('#mask').is(':visible')) {
    $('#mask').fadeOut();
  }
});

点击遮罩层外区域关闭

$('#mask').click(function(e) {
  if (e.target === this) {
    $(this).fadeOut();
  }
});

CSS优化建议

将样式提取到CSS文件中更易于维护:

.mask {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.5);
  z-index: 9998;
  display: none;
}

.modal-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #fff;
  padding: 20px;
  z-index: 9999;
}

注意事项

  • 遮罩层的z-index值需要根据页面其他元素调整
  • 移动端需要考虑视口单位和触摸事件
  • 多次调用显示/隐藏时建议使用stop()防止动画队列堆积
  • 性能敏感场景可用visibility替代display属性

jquery 遮罩层

标签: jquery遮罩层
分享给朋友:

相关文章

jquery版本

jquery版本

jQuery是一个快速、简洁的JavaScript库,用于简化HTML文档遍历、事件处理、动画设计和Ajax交互。以下是关于jQuery版本的详细信息: jQuery版本分类 jQuery主要分为三…

jquery 菜鸟

jquery 菜鸟

以下是针对 jQuery 初学者的基础指南,涵盖核心概念和常用操作: jQuery 简介 jQuery 是一个快速、轻量级的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和…

jquery 对话框

jquery 对话框

jQuery 对话框的实现方法 jQuery 对话框通常通过 jQuery UI 库中的 dialog() 方法实现。以下是几种常见的实现方式: 基本对话框实现 引入必要的 jQuery 和 jQ…

jquery 插入html

jquery 插入html

jQuery 插入 HTML 的方法 jQuery 提供了多种方法来动态插入 HTML 内容到 DOM 中。以下是几种常用的方法: append() 将内容插入到选定元素的内部末尾。 $(…

jquery点击

jquery点击

jQuery 点击事件绑定方法 使用 jQuery 绑定点击事件可以通过多种方式实现,以下是几种常见的方法: click() 方法绑定 $("#elementId").click(functi…

jquery 删除

jquery 删除

jQuery 删除元素的方法 使用 jQuery 删除 DOM 元素可以通过多种方式实现,具体方法取决于需求。以下是几种常见的删除方式: remove() 方法 remove() 方法会删除选中的元…