美文网首页
怎么区分鼠标是单击还是拖动?

怎么区分鼠标是单击还是拖动?

作者: LuckyJin | 来源:发表于2021-05-15 17:11 被阅读0次

js的鼠标事件

image.png

拖拽常用事件

onmousedown 鼠标按下触发事件
onmousemove 鼠标按下时持续触发事件
onmouseup 鼠标抬起触发事件

click点击事件=mouseup+mousedown
drag拖拽=mousedown+mousemove+mouseup

当鼠标在div上【移动】或者【按下左键拖动】的时候,都会触发onmousemove事件;

<div id="drag" οnmοusedοwn="down();" οnmοuseup="up();" οnmοusemοve="move();"></div>

问题:怎样区分鼠标是单击弹起还是拖动后弹起呢?
处理一:基于时间;
onmousedown中记录鼠标按下的位置,在onmouseup中记录鼠标弹起的位置,然后比较这2个位置的差距。
如果距离差距不大,则是鼠标【单击】后弹起;
如果距离相差较大,则是鼠标【拖动】后弹起。

<script>
  var timer = null
  var isDrag = false

  function down () {
    console.log('onmousedown')
    //由于onmousedown每次都会调用的,在这里初始化一下这个变量
    isDrag = false
    //延迟100ms
    timer = setTimeout(setDragTrue, 200)
  }

  function setDragTrue () {
    isDrag = true
  }

  function move () {
    //能够使用isDrag来推断是移动还是拖动
  }

  function up () {
    if (!isDrag) {
      //先清除timer
      clearTimeout(timer)
      console.log('onmouseup')
    } else {
      isDrag = false
      console.log('draging over.')
    }
  }

</script>

相关文章

  • 怎么区分鼠标是单击还是拖动?

    js的鼠标事件 拖拽常用事件 onmousedown 鼠标按下触发事件onmousemove 鼠标按下时持续触发事...

  • 3dsMax怎么设计套几模型?

    1、单击(创建)/(几何体)/ChamferBox(切角长方体)按钮,在顶视图中单击并拖动鼠标创建一个切角长方体,...

  • word中的表格基础介绍

    1.创建基础表格 方法一:依次单击【插入】—【表格】,在【表格】下拉按钮中通过拖动鼠标来确定单元格数量,最后单击鼠...

  • 7.1.4 实战:用吸管工具拾取颜色

    选择吸管工具 在图像上单击,吸取颜色作为前景色 按住鼠标拖动,出现两种颜色 按住Alt建单击,使其为背景色 光圈晃...

  • 技术部学习报告 (17.10.27)

    事件响应,让网页交互 onclick (鼠标单击事件) onclick是鼠标单击事件,当在网页上单击鼠标时,就会发...

  • PS: 图片修复、去水印、美容

    一、仿制图章(S) 操作步骤:1.在复制的源处,按Alt+单击鼠标(定义来源)。2.在目标处,按住鼠标拖动。3.重...

  • Axure RP 进度条的制作

    两个矩形——鼠标设置尺寸 开始菜单——鼠标单击时,移动。拖动时,移动/等待。 “微信+号”的制作:利用两个热区的叠...

  • Javascrpt进阶

    鼠标单击事件( onclick ) onclick是鼠标单击事件,当在网页上单击鼠标时,就会发生该事件。同时onc...

  • Maya(四) 视图操作

    旋转视图: ALT + 拖动鼠标左键 缩放视图: ALT + 拖动鼠标右键 平移视图: ALT + 拖动鼠标中键 ...

  • 【Axure10】交互功能-交互事件-元件(元件组)交互事件

    鼠标相关交互事件 【高】单击时 元件(元件组)的是鼠标单击事件,可以实现鼠标单击的触发的交互事件。 【中】双击事件...

网友评论

      本文标题:怎么区分鼠标是单击还是拖动?

      本文链接:https://www.haomeiwen.com/subject/dbyzqktx.html