Jquery e、 pageX和e.pageY工作不正常?

Jquery e、 pageX和e.pageY工作不正常?,jquery,Jquery,我试图在单击鼠标时将div放置在光标所在的位置。所以,当我使用e.PageX和e.pageY时,它实际上使我的div远低于预期。有什么想法吗 var mouseX = e.pageX; var mouseY = e.pageY; $("#moverdiv").css({'top':mouseY,'left':mouseX}); 这对我有用。试试这个: <!DOCTYPE html> <html> <head> <script src=

我试图在单击鼠标时将div放置在光标所在的位置。所以,当我使用e.PageX和e.pageY时,它实际上使我的div远低于预期。有什么想法吗

var mouseX = e.pageX;
var mouseY = e.pageY;
$("#moverdiv").css({'top':mouseY,'left':mouseX});

这对我有用。试试这个:

<!DOCTYPE html>
 <html>
   <head>
     <script src="jquery.js"></script>
     <script>
        $(document).ready(function(){
          $(document).click(function(e){ 
            var mouseX = e.pageX;
            var mouseY = e.pageY;
            $("#moverdiv").css({'top':mouseY, 'left':mouseX});
          });

        });
     </script>
     <style type="text/css">
         #moverdiv{
            position: absolute;
            top: 0px;
            left: 0px;
            background-color: #000;
            width: 100px;
            height: 100px;
           }
      </style>
   </head>
   <body>
      <div id="moverdiv"></div>
   </body>
 </html>

$(文档).ready(函数(){
$(文档)。单击(函数(e){
var mouseX=e.pageX;
var mouseY=e.pageY;
$(“#moverdiv”).css({'top':mouseY,'left':mouseX});
});
});
#莫韦尔迪夫{
位置:绝对位置;
顶部:0px;
左:0px;
背景色:#000;
宽度:100px;
高度:100px;
}

这就是pageX的定义是:

pageX是鼠标事件触发时鼠标指针相对于整个文档的X坐标的整数值(以像素为单位)。此属性考虑页面的任何水平滚动

如果您输入这种代码:

    $(document.body).click(function(mouseEvent) {

        $("#MyDiv").css({
            'top': mouseEvent.pageY,
            'left':mouseEvent.pageX
        });
    });
它工作得很好

如果div不在所需位置,则其原因是div的参照点可能与主体不同(与浏览器的左上角不同)


实际上,绝对位置元素引用第一个引用父元素。如果未找到引用父项,则最终引用父项为正文。可能您有一个中间元素,该元素具有CSS属性:位置:relative。此CSS属性使元素成为定位的参考,并引发移位。

什么是
#moverdiv
?对于绝对位置元素,其左/右属性相对于其第一个非静态定位的祖先。发布您的标记可能会有所帮助。若窗口中有滚动条,这将无法正常工作。滚动后,div未对齐到单击点位置。为避免由于父元素的“位置:相对”而发生移动,请使用“#MyDiv”的“位置:固定”。警告只有在没有滚动条的情况下才能正常工作!如果是滚动条,则需要减去当前滚动位置(选中)。