鼠标使用滚动相对于父div内的Div进行坐标

时间:2012-05-16 20:49:41

标签: jquery css

我在父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)Here

提前致谢

1 个答案:

答案 0 :(得分: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/