<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>遮罩层窗口</title>
<script type="text/javascript" src="js/jquery-1.8.0.js"></script>
<script type="text/javascript">
// JavaScript Document
$(function(){
var sb = $(".shadebg"); //遮罩层对象
var form = $(".layer_1"); //表单对象
var move = $(".move");
var dw = $(document).width(); //文档的宽度
var dh = $(document).height(); //文档的宽度
var bw = document.documentElement.clientWidth ; //浏览器显示内容区域宽度
var bh = document.documentElement.clientHeight ; //浏览器显示内容区域高度
var st ; //滚动条相对顶部位置
var sl ; //滚动条相对左端位置
var ft; // 表单窗口相对浏览器上沿距离
var fl; // 表单窗口相对浏览器左边距
/*
*设置表单窗口位置
*/
var fh = form.height(); // 表单高度
var fw = form.width(); // 表单宽度
ft = bh/2 - fh/2; //设定表单窗口初始位置居中
fl = bw/2 - fw/2;
form.css({top:ft,left:fl});
var lmx; //光标位置
var lmy;
//按下鼠标后绑定鼠标移动事件,再绑定鼠标松开事件
move.bind("mousedown",function(e){
move.unbind("mousemove"); //点击的时候先去掉鼠标拖动事件
lmx = e.pageX; //获取鼠标当前位置
lmy = e.pageY;
var lft = form.offset().top; //获取表单的当前位置
var lfl = form.offset().left;
move.bind("mousemove",function(e){
cmx = e.pageX; //鼠标当前移动位置
cmy = e.pageY;
var x = cmx - lmx; //获得两次鼠标坐标之差
var y = cmy - lmy;
var cft = lft + y;
var cfl = lfl + x;
if(cft<0||cft==0)cft = 0;
if(cft+fh>dh||cft+fh==dh)cft=dh-fh;
if(cfl<0||fl==0)cfl=0;
if(cfl+fw>bw||cfl+fw==bw)cfl=bw-fw;
form.css({top:cft,left:cfl});
$(".layer_2").html("<div>按下鼠标位置:lmx:"+lmx+";lmy:"+lmy+"</div><div>鼠标当前位置:cmx:"+cmx+";cmy:"+cmy+"</div><div>两次差值:x:"+x+";y:"+y+"</div><div>移动前的top与left:top:"+lft+";left:"+lfl+"</div><div>移动后的top与left:top:"+cft+";left:"+cfl+"</div>");
});
move.bind("mouseup",function(){move.unbind("mousemove");});
})
/**改变窗口大小或者滚动滚动条时重新设定遮罩层与表单窗口的位置**/
function resetBg(){
bw = document.documentElement.clientWidth; //浏览器显示内容区域宽度
bh = document.documentElement.clientHeight; //浏览器显示内容区域高
st = document.documentElement.scrollTop; //滚动条相对浏览器显示区域顶部高度
sl = document.documentElement.scrollLeft; //滚动条相对浏览器显示区域左侧宽
sb.css({width:bw,height:bh,top:st,left:sl}); //重新设定遮罩层高宽及top与left定位
ft = bh/2 - fh/2 + st; //设定表单窗口初始位置居中
fl = bw/2 - fw/2 + sl;
// form.css({top:ft,left:fl});
}
$(window).scroll(function(){resetBg()}); //滚动条滚动时改遮罩层
$(window).resize(function(){resetBg()}); //浏览器窗口大小改变时改变遮罩层
$("#button").click(function(){
jquery弹出div窗口 sb.css({width:bw,height:bh,display:"block"});
form.css({display:"block"});
});
$(".close").bind("click",function(){
sb.css("display","none");
form.css("display","none");
});
})
</script>
</head>
<style type="text/css">
html,body,form input{ margin:0; padding:0;}
body{background-color:#006;}
.
shadebg{ position:absolute; top:0; left:0; background-color:rgba(10,10,0,0.3); display:none; z-index:2;}
div.layer_1{ position:absolute; top:100px; left:400px; width:400px; height:260px; background-color:#00C; border:solid 1px #00F; display:none; z-index:3;}
ve{height:20px; width:360px; cursor:move; text-align:left; font-size:14px; color:#FFF; float:left; padding:8px 0 0 5px;}
div.close{cursor:pointer; width:30px; height:28px; color:#FFF; font-size:25px; float:right; padding:2px 0 0 0; text-align:center; }
div.layer_2{width:400px; height:200px; background-color:#FFF; position:absolute; top:30px; left:-1px; border:solid 1px #00F;}
.clear{float:none; clear:both;}
</style>
<body>
<input type="button" value="遮罩" id="button" />
<div class="shadebg"></div>
<div class="layer_1">
<div class="move">鼠标按下可移动</div><div class="close">×</div><div class="clear"></div>
<div class="layer_2">
<form action="#" method="post" name="form">
</form>
<div>
</div>
</body>
</html>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论