javascript弹出DIV层并锁屏原理
javascript弹出DIV层并锁屏
1 <html> 2 <head> 3 <title>javascript弹出DIV层并锁屏</title> 4 <style> 5 .black_overlay 6 { 7 display: none; 8 position: absolute; 9 top: 0%; 10 left: 0%; 11 width: 100%; 12 height: 100%; 13 background-color: black; 14 z-index: 1001; 15 -moz-opacity: 0.8; 16 opacity: 0.5; 17 filter: alpha(opacity=80); 18 } 19 20 .white_content 21 { 22 display: none; 23 position: absolute; 24 top: 25%; 25 left: 25%; 26 width: 50%; 27 height: 50%; 28 padding: 16px; 29 border: 16px solid orange; 30 background-color: white; 31 z-index: 1002; 32 overflow: auto; 33 } 34 </style> 35 </head> 36 <body> 37 <a href="javascript:void(0)" onclick="document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'">打开</a> 38 <div id="light" class="white_content">内容<a href="javascript:void(0)" onclick="document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'">关闭</a></div> 39 <div id="fade" class="black_overlay"> 40 </div> 41 </body> 42 </html>
思路:
2个div 默认隐藏 点击的时候 显示,其中一个div利用css效果(width:100% height:100% 结合z_index 注意内容的z_index的值大于背后隐藏的idv的z_index
关闭 则隐藏)。
jq版本
<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>半透明背景层</title>
<script src="js/jquery-1.3.2.js"></script>
<script type="text/javascript">
$(function () {
var station = false,
info = $(".info"),
backgroundDiv = $(".backgroundDiv");
$("#show").click(function () {
if (station == false) {
backgroundDiv.css({ "opacity": "0.5" }).fadeIn('normal');
var scrollWidth = document.documentElement.clientWidth,
scrollHeight = document.documentElement.clientHeight,
divWidth = info.width(),
divHeight = info.height(),
divLeft = scrollWidth / 2 - divWidth / 2,
divTop = scrollHeight / 2 - divHeight / 2;
info.css({ "position": "absolute", "top": divTop, "left": divLeft }).fadeIn('normal');
station = true;
} else {
alert("状态错误!");
}
});
$("#close").click(function () {
if (station == true) {
info.fadeOut('normal');
backgroundDiv.fadeOut('normal');
station = false;
}
});
});
</script>
<style type="text/css">
.backgroundDiv
{
width: 100%;
height: 100%;
display: none;
z-index: 10;
background-color: #333333;
position: absolute;
top: 0px;
left: 0px;
}
.info
{
width: 400px;
height: 300px;
background-color: #FFFFFF;
border: 5px solid #0066FF;
display: none;
position: absolute;
left: 0px;
top: 0px;
z-index: 11;
}
#closeDiv
{
float: right;
width: 22px;
height: 22px;
margin-top: 10px;
margin-right: 10px;
}
.close
{
float: right;
}
</style>
</head>
<body>
<center>
<img src="images/opacity.jpg" />
<div><button id="show">press me</button>
</div>
</center>
<div class="backgroundDiv"></div>
<div class="info">
<div id="closeDiv"><img id="close" src="images/close.jpg" width="22" /></div>
<img src="images/opacity.jpg" width="400px" />
</div>
</body>
</html>
原理同上。 jq代码 首先获取body的width 和height ,在获取弹出框的width 和height 用body的值减去弹出框的值 除2 就居中了。至于鼠标移动注意鼠标的事件顺序
首先 onmousedown(鼠标按下) onmousemove(鼠标拖动) onmouseup(鼠标松开) 最后控制移动的范围 总不能移动到屏幕的外面去吧 !呵呵

浙公网安备 33010602011771号