我目前正在實施一個小型演示應用程序,試圖讓我的頭繞着HTML5拖放。我現在想要做的是在用戶拖動時獲取光標的位置,但是我遇到了一些問題。拖動時獲取鼠標位置(JS + HTML5)
看起來,'mousemove'事件在拖動時沒有被觸發,這阻止了我找出鼠標的當前位置。我可以使用'drag'事件,但我無法弄清楚如何從'drag'事件對象獲取位置。
我目前正在實施一個小型演示應用程序,試圖讓我的頭繞着HTML5拖放。我現在想要做的是在用戶拖動時獲取光標的位置,但是我遇到了一些問題。拖動時獲取鼠標位置(JS + HTML5)
看起來,'mousemove'事件在拖動時沒有被觸發,這阻止了我找出鼠標的當前位置。我可以使用'drag'事件,但我無法弄清楚如何從'drag'事件對象獲取位置。
// JavaScript
document.addEventListener("dragover", function(e){
e = e || window.event;
var dragX = e.pageX, dragY = e.pageY;
console.log("X: "+dragX+" Y: "+dragY);
}, false);
// jQuery
$("body").bind("dragover", function(e){
var dragX = e.pageX, dragY = e.pageY;
console.log("X: "+dragX+" Y: "+dragY);
});
可運行代碼下面片段:
document.ondragover = function(evt) {
evt = evt || window.event;
var x = evt.pageX,
y = evt.pageY;
console.log(x, y);
}
如果你使用jQuery ...
$(document).on('dragover', function(evt) {
var x = evt.pageX,
y = evt.pageY;
console.log(x, y);
});
有相當多的dragover事件。如果忽略大多數人,這不是一個好的理念嗎?讓我們說..每10次事件處理?現在我不知道我該怎麼做,但我會花時間考慮一下。 – Tchypp 2012-02-10 19:22:38
@Tchypp嗯,是的,有很多事件,指針位置更新必然會產生很多事件。這取決於你在這些事件中做了什麼,以及它的密集程度。大多數人需要實時信息,而不是每像素更新。跟蹤拖延事件的開始,每個事件的增加以及僅對第10個事件採取行動的成本都必須權衡在每個事件期間的行爲。 – mattsven 2014-11-07 03:46:22