zoukankan      html  css  js  c++  java
  • js拖拽分析

    js拖拽分析

    思路

    1、三个鼠标事件,mousedown,mousemove,mouseup

    2、可移动性absolute

    3、边界限制

    得到鼠标点击处和div边界的距离,然后得出top 和 left 的值

    具体

    mousedown

       div.onmousedown=function(event){
             var event=event||window.event
             var diffX=event.clientX-div.offsetLeft
             var diffY=event.clientY-div.offsetTop
       }

    diffX/Y得出的是开始点击处和div边界的距离

    mousemove

    document.onmousemove=function(event){
             var event=event||window.event
             var l=event.clientX-diffX
             var t=event.clientY-diffY
             if(t<0){
                  t=0
          }
             if(t>document.documentElement.clientHeight-div.offsetHeight){
                  t=document.documentElement.clientHeight-div.offsetHeight
          }
             if(l>document.documentElement.clientWidth-div.offsetWidth){
                  l=document.documentElement.clientWidth-div.offsetWidth
          }
              if(l<0){
                  l=0
          }
              div.style.left=l+'px'
              div.style.top=t+'px
    }

    if后的语句主要是限制边界处而设置的

    mouseup

    document.onmouseup=function(){
            document.onmousemove=null
            document.onmouseup=null
    }

    主要是当鼠标放开时,取消move带来的结果。

    当然,还有位置的absolute不要忘记

  • 相关阅读:
    LIN总线学习-总线逻辑
    使用万用表测量CAN总线电压及实际电压与逻辑电瓶关系
    汽车网络和控制单元的安全威胁研究
    [CANopen] SDO的命令字
    新起点,新开始
    Git Commands
    Obsessive String
    The E-pang Palace
    最长递增子序列(LIS)
    Valid Sets
  • 原文地址:https://www.cnblogs.com/iDouble/p/8543870.html
Copyright © 2011-2022 走看看