| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
y637
10年前发布

JS拖拽元素 兼容IE

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">        <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">        <head>            <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">            <title>Document</title>            <style>             *{                margin: 0px;                padding:0px;             }             #div1{                width: 500px;                height: 500px;                position: relative;                border:1px solid #ff00ff;                top:100px;                left: 300px;             }             #div2{                position: absolute;                width: 150px;                height: 150px;                top:0px;                left:0px;                background: #ff00ff;             }             .boxs{                border:1px dashed #000000;                position: absolute;             }            </style>            <script>            function getpos(ev){              var scrolltop=document.documentElement.scrollTop||document.body.scrollTop;              var scrollleft=document.documentElement.scrollLeft||document.body.scrollLeft;              return {x:ev.clientX+scrollleft,y:ev.clientY+scrolltop}                    }            function addEvent(obj,even,fn){ /*事件绑定*/               return obj.addEventListener?obj.addEventListener(even,fn,false):obj.attachEvent("on"+even,fn);            }            function unEvent(obj,even,fn){                return obj.removeEventListener?obj.removeEventListener(even,fn,false):obj.detachEvent("on"+even,fn);            }              window.onload=function(){                 var odiv1=document.getElementById("div1");                     odiv2=document.getElementById("div2");                     disX=0;                     disY=0;                 addEvent(odiv2,"mousedown",function(ev){                       var eventr=ev||event;                       pos=getpos(eventr);                       disX=pos.x-this.offsetLeft;                       disY=pos.y-this.offsetTop;                       creatElement=document.createElement("div");                       creatElement.className="boxs";                       creatElement.style.width=odiv2.offsetWidth-2+"px";                       creatElement.style.height=odiv2.offsetHeight-2+"px";                       creatElement.style.top=odiv2.offsetTop+"px";                       creatElement.style.left=odiv2.offsetLeft+"px";                       div1.appendChild(creatElement);                   document.onmousemove=function(ev){                    var eventr=ev||event;                     pos=getpos(eventr);                       creatElement.style.left=pos.x-disX+"px";                       creatElement.style.top=pos.y-disY+"px";                      if(creatElement.offsetTop<0){                       creatElement.style.top=0+"px";                      }                      if(creatElement.offsetLeft<0){                       creatElement.style.left=0+"px";                      }                      if(creatElement.offsetTop>odiv1.offsetHeight-odiv2.offsetHeight){                         creatElement.style.top=odiv1.offsetHeight-odiv2.offsetHeight+"px";                      }                       if(creatElement.offsetLeft>odiv1.offsetWidth-odiv2.offsetWidth){                         creatElement.style.left=odiv1.offsetWidth-odiv2.offsetWidth+"px";                      }                   }                    document.onmouseup=function(){                         odiv2.style.left=creatElement.offsetLeft+"px";                         odiv2.style.top=creatElement.offsetTop+"px";                         div1.removeChild(creatElement);                         unEvent(odiv2,"mousedown");                         document.onmousemove=null;                              }                    return false;                     })                                  }            </script>        </head>        <body>          <div id="div1">              <div id="div2"></div>          </div>        </body>        </html>