半透明弹出层

每次使用都要现查,还是记录下吧,供大家参考。

透明层的css,如果使用opacity,则子div也会半透明,此处background-color使用rgba(6, 6, 6, .5)替代#666,即可做到子div不透明。

    .div-pop {
        position: fixed;
        left: 0;
        top: 0;
        background-color: rgba(6,6,6,.5);
        height: 100%;
        width: 100%;
        display: none;
        z-index: 1000;
        /*opacity: 0.4;*/
    }


    <div class="div-pop">
        <div style="background-color: #FFF; width: 400px; margin-top: 20%; margin-left: 35%; position: absolute; ">
            内容在此
        </div>
    </div>

发现此方法还是有兼容性问题,一个非主流的Avant浏览器下,遮罩层并没有显示出来,下面的例子亲测有效。

<html>
	<head>
	<script>
		function reSizeWindow()
		{
			var shadow = document.getElementById("shadow");
			var dialog = document.getElementById("dialog");
			
			shadow.style.width = parseInt(document.body.clientWidth) + parseInt(document.body.scrollLeft);
			shadow.style.height = parseInt(document.body.clientHeight) + parseInt(document.body.scrollTop);
				
			dialog.style.left = parseInt(document.body.clientWidth)/2 - parseInt(dialog.style.width)/2 + parseInt(document.body.scrollLeft);
			dialog.style.top = parseInt(document.body.clientHeight)/2 - parseInt(dialog.style.height)/2 + parseInt(document.body.scrollTop);
		}
		function openWindow()
		{
			document.getElementById("shadow").style.display = "block";
			document.getElementById("dialog").style.display = "block";
			
			reSizeWindow();
		}
		function closeWindow()
		{
			document.getElementById("shadow").style.display = "none";
			document.getElementById("dialog").style.display = "none";
		}
	</script>
	<style type="text/css">
		.dialogStyle
		{
			background:red;
			position:absolute;
			display:none;
			text-align:right;
			z-index:2;
		}
		.shadowStyle
		{
			position:absolute;
			left:0px;
			top:0px;
			display:none;
			filter:alpha(opacity=30);
			opacity:0.3;
			background:gray;
			z-index:1;
		}
	</style>
	</head>
	<body style="margin:0px 0px 0px 0px;">
		<input type="button" οnclick="openWindow()" value="open" style="margin-left:100px;margin-top:100px;"/>
		<div id="dialog" class="dialogStyle" style="width:200px;height:200px;">
			<input type="button" value="close" οnclick="closeWindow()"/>
		</div>
		<div id="shadow" class="shadowStyle">
		</div>
		<!--width:200px;height:200px;background:red;position:absolute;display:none;text-align:right;z-index:2;-->
		<!--position:absolute;left:0px;top:0px;display:none;filter:alpha(opacity=30);opacity:0.3;background:gray;z-index:1;-->
		
		<script>
			window.onresize = function()
			{
				reSizeWindow();
			}
			window.onscroll = function()
			{
				reSizeWindow();
			}
			for(var i = 0;i < 100;i++)
			{
				document.write("<br/>"+i);
			}
		</script>
	</body>
</html>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值