【发布时间】:2017-07-31 14:02:24
【问题描述】:
如何在拖动元素时检测悬停/鼠标悬停/鼠标输入?我想在用“拖动”元素悬停它后有一个绿色框。有什么解决办法吗?
注意:我知道我可以使用 jQuery UI,但我想自己做。
$("box").mouseover(function() {
$(this).addClass("green");
var box = $(this).attr("id");
$("#result").html(box);
});
$("box").mouseleave(function() {
$(this).removeClass("green");
});
$("drag").bind({
mousedown: function() {
$(this).addClass("absolute");
},
mouseup: function() {
$(this).removeClass("absolute");
},
mousemove: function(e) {
$(this).css({
left: e.pageX - (50 / 2),
top: e.pageY - (50 / 2)
});
}
});
$("body").mousemove(function(event) {
$("#log").text("pageX: " + event.pageX + ", pageY: " + event.pageY);
});
https://jsfiddle.net/38zecoL1/1/
感谢您的帮助。
【问题讨论】:
-
@Rick 这对你有点不公平......他正试图完成它并且在一小部分有问题。编写现有库的功能只是为了知道事情是如何工作的/说你有,这是不错的做法。
-
使用 html5 拖放事件...html5rocks.com/en/tutorials/dnd/basics
-
有一个有趣的实验性 API 可以找出特定
(x,y)位置的多个元素。document.elementsFromPoint。也许使用 body 上的mousemove事件来检查box2和drag是否在同一位置。
标签: javascript jquery html css drag-and-drop