虽然我的功能在我的第一台显示器上运行,就像在我的第二台显示器上一样,所有事件的坐标都是负的。就像它的指示点仍在我的主监视器上。从html5拖放时会触发事件。
function endDnD(e) {
var parentOff = $(this).parent().offset();
console.log(e);
console.log(e.pageX+" "+e.pageY+" "+parentOff.left+" "+parentOff.top);
var posX = e.screenX - parentOff.left;
var posY = e.pageY - parentOff.top;
$(this).css("left", posX); $(this).css("top", posY);
答案 0 :(得分:3)
我认为您需要将其添加到您的等式中:
window.screen.availLeft
如果它是主屏幕(默认为左屏幕)或主屏幕的宽度作为右屏幕的起点,则返回0值。
在这里查找信息和示例: https://developer.mozilla.org/en-US/docs/Web/API/Screen/availLeft
请注意,虽然这是有关Mozilla网站的信息,但它也适用于其他流行的浏览器
答案 1 :(得分:0)
要在当前屏幕上获取X坐标,您可以使用:
e.clientX
而不是e.pageX
。这将返回x > 0
值。