【发布时间】:2011-04-27 00:55:42
【问题描述】:
我目前正在实现一个小型演示应用程序,试图让我的头脑了解使用 HTML5 进行拖放。我目前正在尝试做的是在用户拖动时获取光标的位置,但是我遇到了一些问题。
拖动时似乎没有触发“mousemove”事件,这使我无法确定鼠标的当前位置。我可以使用“拖动”事件,但是我不知道如何从“拖动”事件对象中获取位置。
【问题讨论】:
标签: javascript html
我目前正在实现一个小型演示应用程序,试图让我的头脑了解使用 HTML5 进行拖放。我目前正在尝试做的是在用户拖动时获取光标的位置,但是我遇到了一些问题。
拖动时似乎没有触发“mousemove”事件,这使我无法确定鼠标的当前位置。我可以使用“拖动”事件,但是我不知道如何从“拖动”事件对象中获取位置。
【问题讨论】:
标签: javascript html
// 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);
});
下面的可运行代码sn-p:
// JavaScript (a really great library that extends jQuery, check it out)
document.addEventListener("dragover", function(e){
e = e || window.event;
var dragX = e.pageX, dragY = e.pageY;
console.log("X: "+dragX+" Y: "+dragY);
}, false);
// jQuery (the native-language JavaScript is written in)
$("body").bind("dragover", function(e){
var dragX = e.pageX, dragY = e.pageY;
console.log("X: "+dragX+" Y: "+dragY);
});
<!doctype>
<html>
<head><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script></head>
<body>LOL drag something over me (open the console)</body>
</html>
【讨论】:
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);
});
【讨论】: