鍍金池/ 問答/HTML/ js如何區(qū)分鼠標(biāo)的點擊和長按拖拽?

js如何區(qū)分鼠標(biāo)的點擊和長按拖拽?

需求是,當(dāng)點擊時,展示編輯邏輯,當(dāng)鼠標(biāo)長按拖拽時,展示拖拽邏輯。如何對兩者進(jìn)行區(qū)分?

回答
編輯回答
真難過

我的理解是

單擊是鼠標(biāo)按下,抬起(click相當(dāng)于mousedown+mouseup)
拖拽是鼠標(biāo)按下,移動,抬起(mousedown+mousemove+mouseup)
2017年1月29日 01:36
編輯回答
不討囍

onmousedown 和 onmouseup事件,他們分別有觸發(fā)時的時間,你比較一下這個時間,另外還有鼠標(biāo)的x y,如果只是點擊,x y 在mouseup 和down里面應(yīng)該是一樣的,但是拖拽的話時間間隔不僅比較久而且x,y是有數(shù)值差異的,因為位移了

2018年6月27日 17:57
編輯回答
溫衫

不要使用click,全部在mouseup中判斷。如果位移,就執(zhí)行拖拽相關(guān)事件。如果沒有位移,那就執(zhí)行點擊的相關(guān)事件

2017年8月15日 06:50
編輯回答
失魂人

在mousedown和mouseup的函數(shù)中獲取分別獲取event.timeStamp,對比時間戳,判斷超過多久為長按,小于多久為點擊

2017年8月23日 05:46
編輯回答
涼薄

點擊就是click事件,拖拽就是dragstart/dragend/mousemove事件。不會混淆

2018年8月3日 07:22