1

親の Div 内に 2 つの Div があります (オーバーフロー: 自動) 2 つの 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 に答える