码迷,mamicode.com
首页 > 其他好文 > 详细

拖拽事件的原理

时间:2017-03-19 22:01:13      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:absolute   代码   use   技术   jpg   als   script   text   blog   

先奉上代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #div1{
            width: 100px;
            height: 100px;
            background-color: red;
            position: absolute;
            cursor: pointer;
        }
    </style>
</head>
<body>
<div id="div1">

</div>
<script type="text/javascript">
    window.onload=function(){
        var Odiv=document.getElementById("div1");
        var disx=0;
        var disy=0;
        Odiv.onmousedown=function(ev){
            var Oevent=ev||event;
/*鼠标的clientX 为鼠标点击位置的x坐标*/
      /*disx disy为鼠标点击的位置距离Odiv左边界及上边界的距离*/ disx=Oevent.clientX-Odiv.offsetLeft; disy=Oevent.clientY-Odiv.offsetTop; document.onmousemove=function(ev){ var Oevent=ev||event;
      /*Oevent表示鼠标,鼠标的位置是不断移动的,鼠标位置减去鼠标距离拖放框的距离就为拖放框的左距离*/ var l=Oevent.clientX-disx; var t=Oevent.clientY-disy; /*限制边界事件*/ if(l<0){ l=0; }else if(l>document.documentElement.clientWidth-Odiv.offsetWidth){ l=document.documentElement.clientWidth-Odiv.offsetWidth; } if(t<0){ t=0; }else if(t>document.documentElement.clientHeight-Odiv.offsetHeight){ l=document.documentElement.clientWidth-Odiv.offsetWidth; } Odiv.style.left=l+"px"; Odiv.style.top=t+"px"; };
    /*当鼠标抬起时,将行为终止*/ document.onmouseup=function(){ document.onmousemove=null; document.onmouseup=null; }; return false; } } </script> </body> </html>

  技术分享

各部分位置关系如上图所示

拖拽事件的原理

标签:absolute   代码   use   技术   jpg   als   script   text   blog   

原文地址:http://www.cnblogs.com/qianduangaoshou/p/6580723.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!