我该如何获取一个固定大小但具有自动边距的canvas内鼠标的位置?
我不能让其位置固定,也不能只使用页面上的常规鼠标位置。
这段代码完美地解决了问题:
mouseX = e.pageX - div.offsetLeft;
mouseY = e.pageY - div.offsetTop;
我该如何获取一个固定大小但具有自动边距的canvas内鼠标的位置?
我不能让其位置固定,也不能只使用页面上的常规鼠标位置。
这段代码完美地解决了问题:
mouseX = e.pageX - div.offsetLeft;
mouseY = e.pageY - div.offsetTop;
使用jQuery:
var divPos = {};
var offset = $("#divid").offset();
$(document).mousemove(function(e){
divPos = {
left: e.pageX - offset.left,
top: e.pageY - offset.top
};
});
pageX
不是标准属性,不应该使用。https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/pageX 例如,在使用foreignObject
时,我遇到了一些问题。 - CharlespageX
å’ŒpageY
å±žæ€§æ˜¯æ ‡å‡†åŒ–çš„ã€‚ - PitaJgetBoundingClientRect
和 addEventListener
而不是 jQuery,你就不需要使用 jQuery 了:var offset = document.querySelector('#divid').getBoundingClientRect();
document.addEventListener('mousemove', function(e) {
var pos = {
left: e.pageX - offset.left,
top: e.pageY - offset.top
}
}
...虽未经过测试,但应该可行。 - chitzuievent.layerX
和event.layerY
来获取鼠标相对于当前元素的位置。$('#canvas').mousemove(function(e){
var mousePos = {'x': e.layerX, 'y': e.layerY};
});
摘自jQuery网站:Jquery教程网站
$(document).mousemove(function(e){
$('#status').html(e.pageX +', '+ e.pageY);
});
注意:修正语法
pageX
和 pageY
不是相对于容器的。 - dmackerman