1

我在父 Div 中有两个 Div(溢出:自动)这两个 Div 很大,所以我得到父级的滚动,问题是当我向上和向下滚动时,我得到内部 Div 的可变鼠标坐标(onclick 事件)(有时甚至是负值)这是我计算鼠标相对值的方法

jQuery(document).ready(function(){
$("#MnDiv").click(function(e){
var clientXRel = e.clientX - this.offsetLeft;
var clientYRel = e.clientY - this.offsetTop;
var clientCoords = "( " + e.clientX + ", " + e.clientY + " )";
var clientCoordsRel = "( " + clientXRel  + ", " + clientYRel  + " )";
$("span:first").text("( e.clientX, e.clientY ) : " + clientCoords);
$("span:last").text("( clientXRel  , clientYRel  ) : " + clientCoordsRel
+      " ( offsetLeft  , offsetTop  ) : " + this.offsetLeft+ ", " this.offsetTop); 
});

所以问题是无论滚动在哪里,如何获得相对于内部 Div 的正确坐标?完整的示例(jsfiddle)在这里

提前致谢

4

1 回答 1

4

使用 jQuery 事件变量.pageX.pageY元素偏移函数.offset().top.offset().left

所以它看起来像

var clientXRel = e.pageX- $(this).offset().left;
var clientYRel = e.pageY - $(this).offset().top;

http://jsfiddle.net/PNLU3/3/

于 2012-05-16T21:12:58.170 回答