zoukankan      html  css  js  c++  java
  • 拖拽的基本原理

    要点:

    1. 计算物体与鼠标的距离
    2. onmousedown 后在有onmousemove动作,是按着移动
    3. 给document这么文档加onmousemove,这样能保证移动过快,物体还保持相对鼠标的位置
    4. onmouseup后,解除document上事件
    5. 解除onmousedown的默认行为,return false
     1 window.onload = function(){
     2     var oDiv = document.getElementById('div1');
     3     
     4     var disX = 0; //鼠标和物体之间的距离
     5     var disY = 0;
     6     
     7     oDiv.onmousedown = function(ev){
     8         var oEvent = ev || event;
     9         var self = this;
    10         disX = oEvent.clientX - self.offsetLeft;
    11         disY = oEvent.clientY - self.offsetTop;
    12         
    13         document.onmousemove = function(ev){
    14             var oEvent = ev || event;
    15             var l = oEvent.clientX - disX;
    16             var t = oEvent.clientY - disY;
    17             
    18             
    19             if (l < 0) {
    20                 l=0;
    21             }
    22             else if(l > document.documentElement.clientWidth-self.offsetWidth){
    23                 l = document.documentElement.clientWidth-self.offsetWidth;
    24             }
    25             if(t < 0){
    26                 t = 0;
    27             }else if(t > document.documentElement.clientHeight-self.offsetHeight){
    28                 t = document.documentElement.clientHeight-self.offsetHeight;
    29             }
    30             
    31             self.style.left = l + 'px';
    32             self.style.top = t + 'px';
    33         }
    34         document.onmouseup = function(){
    35             document.onmousemove = null;
    36             document.onmouseup = null;
    37         }
    38         
    39         return false;
    40     }
    41 };
  • 相关阅读:
    DEEP COMPRESSION小记
    python中join的用法
    Ubuntu下pycharm安装
    java.lang.ClassNotFoundException
    12种排序算法(转载)
    会场安排问题
    在GitHub上上传项目(转载)
    实现prim算法
    经典进程同步与互斥习题总结
    实现迪杰斯特拉算法
  • 原文地址:https://www.cnblogs.com/niubenbit/p/2784516.html
Copyright © 2011-2022 走看看