zoukankan      html  css  js  c++  java
  • 拖拽事件的原理

    先奉上代码如下

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            #div1{
                 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>

      

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

  • 相关阅读:
    简明 Vim 练级攻略
    设置命令的别名
    GPIO实验(二)
    GPIO实验(一)
    ubuntu文件夹默认列表显示
    ubuntu 12.04下gedit查看txt中文乱码解决办法
    ubuntu下超强的截图工具scrot
    原码 反码 补码 移码的关系(精简总结)
    内核编译
    [Linux] shell利用sed如何批量更改文件名详解[转载] | 不使用正则表达式,修改未知的文件名|
  • 原文地址:https://www.cnblogs.com/qianduangaoshou/p/6580723.html
Copyright © 2011-2022 走看看