当前位置:首页 > 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();

带内容的模态遮罩

jquery 遮罩层

// 创建遮罩和内容容器
$('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();
  });
});

进阶功能实现

禁止滚动穿透

jquery 遮罩层

// 显示遮罩时锁定滚动
$('#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.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 jQ…

jquery 数字

jquery 数字

jQuery 数字操作 jQuery 本身不直接提供数字操作的方法,但可以结合 JavaScript 的数字处理功能来实现。以下是常见的数字操作场景及实现方式。 数字格式化 使用 JavaScrip…

引入jquery

引入jquery

引入jQuery的方法 通过CDN引入(推荐) 在HTML文件的<head>或<body>标签内添加以下链接,使用官方或公共CDN服务: <script src="…

jquery列表

jquery列表

jQuery 列表操作 jQuery 提供了多种方法来操作 HTML 列表(如 <ul> 或 <ol>),包括动态添加、删除、修改列表项,以及事件绑定等。 创建列表 使用 j…

jquery 查询

jquery 查询

jQuery 查询方法 jQuery 提供了多种方法来查询和操作 DOM 元素,以下是一些常用的查询方法: 基本选择器 使用 $() 或 jQuery() 函数可以通过 CSS 选择器查找元素:…

jquery 源码

jquery 源码

jQuery 源码解析 jQuery 是一个快速、小巧且功能丰富的 JavaScript 库。以下是其核心源码结构的解析: 核心架构 jQuery 源码采用模块化设计,核心功能包括选择器引擎、DOM…