来自事件的Jquery pageX和screenX在第二台监视器上是否定的

时间:2015-12-15 13:53:39

标签: javascript jquery html5

虽然我的功能在我的第一台显示器上运行,就像在我的第二台显示器上一样,所有事件的坐标都是负的。就像它的指示点仍在我的主监视器上。从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);

2 个答案:

答案 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值。