2011-07-19 14 views
0

画像(divの背景画像)でクリックイベントをキャプチャしようとしています。私は次のコードを持っています:画像のjavascriptオフセット値

findPos:function(obj) { 
      var pos = new Object(); 
      pos.x = pos.y = 0;   
      if (obj.offsetParent) 
      { 
      do 
      { 
       pos.x += obj.offsetLeft; 
       pos.y += obj.offsetTop; 
      } while (obj = obj.offsetParent); 
      } 
      return pos; 
     } 

上記のコードはdivに同じ値を返します。しかし、私はdiv内の座標を取得したい。

+0

div内のマウス座標、または背景画像の位置を取得しようとしていますか? –

+0

cssを使用して中心に置かれたdivの相対的なマウス座標 – gk1

答えて

1

あなたはこのような何かを探してい:単にあなたがやっているのと同様に、div要素の座標を見つけ、のマウス座標からそれらを引く

http://jsbin.com/ogarof/

$("#special").click(function(e){ 

    var x = e.pageX - this.offsetLeft; 
    var y = e.pageY - this.offsetTop; 

     $('#status2').html(x +', '+ y); 
    }); 

<html> 
    <head> 
    <script class="jsbin" 
      src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"> 
    </script> 
    </head> 
    <body>  
    <h2 id="status2"> 
    0, 0 
    </h2> 
    <div style="width: 100px; height: 100px; background:#ccc;" id="special"> 
    Click me anywhere! 
    </div> 
    </body> 
</html> 
+0

これは素晴らしい答えです。@ gk1がjQueryを使用することに反対でない限り –

+0

このような短いコードスニペットの場合、答えに追加してください。外部の「ビン」はリンクの腐敗に苦しむ傾向があります。 – Kev

0

クリックイベント。

関連する問題