jquery遮罩层实现

在前端界面,有时候触发了某些条件,需要将一些控件(如按钮、跳转链接)设置为不可点击;当达到另外条件后,又可以恢复点击。
一般的做法,都是在具体的页面上,针对特定的控件写对应的方法。
但对于需要修改的地方多的时候,一个个去针对性修改就显得有些低效了。这时候如果有一个公共的方法来调用,一切就显得方便高效许多。

这里提供一个遮罩层的方法,来提供公共的调用。

原理:
设置一个透明div层,置于需要修改的控件对象的上一层,即覆盖住需要修改的控件的点击范围。以使得当用户想要点击控件时,实际上是点击到了控件上一层的这个div层,从而阻隔了用户对于控件的直接点击。

编写遮罩层的逻辑:
在需要遮住的元素之上,wrap一个透明div层,这个div层的z-index较大(才能浮在元素之上),将元素包裹住。

注:wrap() 方法把每个被选元素放置在指定的 HTML 内容或元素中。如:$(selector).wrap(wrapper)

实现代码:

//启动遮罩
function MaskIt(obj){
     var hoverdiv = '<div class="divMask" style="position: absolute; width: 100%; height: 100%; left: 0px; top: 0px; background: #fff; opacity: 0; filter: alpha(opacity=0);z-index:5;"></div>';
    $(obj).wrap('<div class="position:relative;"></div>');
    $(obj).before(hoverdiv);
    $(obj).data("mask",true);
}

//解除遮罩
function UnMaskIt(obj){
    if($(obj).data("mask")==true){
        $(obj).parent().find(".divMask").remove();
        $(obj).unwrap();
        $(obj).data("mask",false);
    }
    $(obj).data("mask",false);
}

调用例子:

//当前有标签: 
<button id="btn1">按钮</button>
//调用遮罩
MaskIt($('#btn1'));
//取消遮罩
UnMaskIt($('#btn1'));
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jQuery遮罩层倒计时可以通过使用jQuery插件和Bootstrap来实现。你可以使用Bootstrap的模态框组件来创建遮罩层,并且使用jQuery的计时器功能来实现倒计时。 首先,你需要在页面中引入jQuery和Bootstrap的相关文件。然后,你可以按照下面的步骤来实现遮罩层倒计时: 1. 创建一个按钮或者其他触发事件的元素,当用户点击该元素时,触发倒计时和遮罩层的显示。 2. 使用jQuery的计时器功能来实现倒计时。你可以使用`setInterval`函数来设置一个定时器,每隔一定的时间更新倒计时的显示内容。 3. 在定时器的回调函数中,更新倒计时的显示内容,并根据剩余时间判断是否显示遮罩层。你可以使用jQuery选择器来获取遮罩层的元素,并使用`show`和`hide`函数来控制其显示和隐藏。 4. 当倒计时结束时,你可以触发弹出模态框(遮罩层)的操作。你可以使用`modal`方法来显示模态框。 这是一个简单的实现示例代码: ```html <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css"> </head> <body> <button id="startCountdown" class="btn btn-primary">开始倒计时</button> <div id="myModal" class="modal fade"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title">警告</h5> </div> <div class="modal-body"> <p>您的时间已经用完</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-success" data-dismiss="modal">确定</button> </div> </div> </div> </div> <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script> <script> $(document).ready(function() { $("#startCountdown").click(function() { var countdown = 10; // 设置倒计时的秒数 var countdownTimer = setInterval(function() { countdown--; if (countdown <= 0) { clearInterval(countdownTimer); $("#myModal").modal("show"); // 显示模态框 } else { $("#countdownDisplay").text(countdown); // 更新倒计时显示 } }, 1000); }); }); </script> </body> </html> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值