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

js的鼠标事件

怎么区分鼠标是单击还是拖动?_第1张图片
image.png

拖拽常用事件

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

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

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

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


你可能感兴趣的:(怎么区分鼠标是单击还是拖动?)