当前位置:首页 > 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文件中更易于维护:

jquery 遮罩层

.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获取radio选中的值

jquery获取radio选中的值

获取radio选中的值 使用jQuery获取被选中的radio按钮的值可以通过以下几种方法实现: 方法1:使用:checked选择器 var selectedValue = $('input[na…

jquery图片

jquery图片

jQuery 图片操作 jQuery 提供了多种方法来处理图片,包括加载、显示、隐藏、动画效果等。以下是一些常见的 jQuery 图片操作方法: 动态加载图片 使用 jQuery 的 attr()…

jquery 方法

jquery 方法

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。以下是一些常用的 jQuery 方法及其用途: 选择器方法 $("selec…

jquery代码

jquery代码

以下是关于jQuery代码的常见用法和示例,涵盖基础操作、事件处理、DOM操作等核心功能: 基础语法 jQuery通过$()函数选择元素,支持CSS选择器语法: // 选择所有<p>元…

jquery 表单

jquery 表单

jQuery 表单操作 使用 jQuery 操作表单可以简化 DOM 操作,提高开发效率。以下是一些常见的表单操作方法: 获取表单元素的值 使用 val() 方法可以获取或设置表单元素的值。 //…

jquery css

jquery css

jQuery 操作 CSS 的方法 jQuery 提供了多种方法来操作元素的 CSS 样式,包括获取、设置、添加或移除样式。以下是常用的方法: 获取 CSS 属性值 使用 .css() 方法获取元素…