弹出遮盖拖动层,不穿过浏览器边缘,兼容IE,FF

http://bbs.51js.com/thread-82234-1-1.html

 

 

<style>
#main {width:250px;heigth:300px;position:absolute;z-index:10;border:1px solid #d6d6d6;display:none;}
#main .T {width:250px;height:auto;background:green;}
#main .T .T_1 {float:left;width:232px;line-height:20px;cursor:move;color:#FFF;font-weight:bold;font-family:verdana;font-size:12px;}
#main .T .T_2 {float:left;width:18px;line-height:20px;background:blue;color:#FFF;font-weight:bold;font-family:verdana;font-size:9pt;text-align:center;cursor:pointer;}
#main .content {width:250px;height:100px;background:#fff;}
</style>
<script>
function $(id){return document.getElementById(id);}
function abc(){
        $("main").style.display="inline";
        $("main").style.top = (document.body.clientHeight - $("main").offsetHeight)/2+"px";
        $("main").style.left = (document.body.clientWidth - $("main").offsetWidth)/2+"px";
        $("main").οnmοusedοwn=Function("Drag(this)"); //拖动层
        //背景层
        var shield=document.createElement("div");
        var W=document.body.clientWidth;
        var H=document.body.clientHeight;
        shield.id="shield";
        shield.style.cssText="position:absolute;z-index:1;width:"+W+"px;height:"+H+"px;background:#000;filter:alpha(opacity=30);opacity:0.3;top:0;left:0;";
        document.body.appendChild(shield);
}

function hidden(){
if($("main")){$("main").style.display="none";}
if($("shield")){document.body.removeChild($("shield"));}
}

function Drag(str){
var e=window.event || arguments.callee.caller.arguments[0];
var deltaX=e.clientX-parseInt(str.offsetLeft);
var deltaY=e.clientY-parseInt(str.offsetTop);
var deltaH=document.body.clientHeight;
var deltaW=document.body.clientWidth;
var drag=true;
str.οnmοusemοve=function(ev){
ev=ev?ev:window.event;
if(drag){
   var Y=ev.clientY-deltaY;
   var X=ev.clientX-deltaX;
   var H=deltaH-str.offsetHeight;
   var W=deltaW-str.offsetWidth;
    if(Y>0 || X>0){
     if(Y>=H){str.style.top=H+"px";}else{str.style.top=Y+"px";}
     if(X>=W){str.style.left=W+"px";}else{str.style.left=X+"px";}
    }
    if(Y<=0){str.style.top=0;}
    if(X<=0){str.style.left=0;}
   str.setCapture();
}}
str.οnmοuseup=function(){drag=false;str.releaseCapture();}
}
</script>

<button οnclick="abc()">弹层</button>

<div id="main">
<div class="T"><div class="T_1" οnmοusedοwn="Drag(this.parentNode.parentNode)">鼠标放这里拖动</div><div class="T_2" οnclick="hidden()">Χ</div></div>
<div class="content"></div>
</div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值