用js实现弹出最简单的模式化遮罩层

本文介绍如何使用JavaScript和CSS创建一个响应式的模态遮罩层,该遮罩层在关闭前阻止对页面内容的操作。首先定义一个容器,并设置`overflow:hidden`以解决IE8及以下版本的浏览器兼容性问题。然后创建一个div作为遮罩层,并通过JavaScript动态调整其大小以适应窗口变化。点击关闭按钮时,JavaScript会移除遮罩层及其内容。


假设我们有一个容器container如下:

<style type=”text/css”>

       #container{width:auto;height:auto; overflow:hidden;}

       /*这里的overflow:hidden;属性主要是为了设置使超出container的部分自动隐藏,之所以设置这个属性,是为了解决ie8及以下版本浏览器兼容性问题*/

</style>

<div id=”container” >

</div>

 

现在要在网页中弹出一个div层,使在关闭弹出的div层之前不可操作container。

那么,我们首先需要定义出这个遮罩的div层如下:

<div id=”continer”>

       <!—只所以将遮罩层放到container里面

       <divid=”shade” style=”width:1600px;height:900px;/*给遮罩层一个初始大小*/”>

              <input name=”close” id=”close” value=”关闭”>

       </div>

</div>

接下来,就是用js来使遮罩层始终显示在屏幕上并不可操作遮罩层下面的内容,点击关闭按钮关闭遮罩层

<script type=”text/javascript”>

       $(function(){

       //获取当前浏览器的内部宽和高

              varnWidth = window.innerWidth;

              varnHeight = window.innerHeight;

              //设置遮罩层的宽和高

              $("#shade").width(nWidth);

              $("#shade").height(nHeight);

              //设置关闭按钮居中显示

              $("#close").css("margin-top",nHeight/2-50+"px");

              //设置当浏览器大小改变时触发的事件

              $(window).resize(function(){

                            //获取当前浏览器的内部宽和高

                            varnWidth = window.innerWidth;

                            varnHeight = window.innerHeight;

                            //设置遮罩层的宽和高

                            $("#shade").width(nWidth);

                            $("#shade").height(nHeight);

                            //设置关闭按钮居中显示

                            $("#putPwd").css("margin-top",nHeight/2-50+"px");

                     });

              //设置关闭按钮消除遮罩层

              $("#close").click(function(){

                            $("#shade").removeAttr("id");

                            $("#shade").html("");

                     });

       //也可用纯js来写

       Document.getElementById(“shade”).style…….;

       //后面多说无益,如果有兴趣又实在不会写,可以和本人联系。

})

</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值