2011-07-19 46 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

您正在尋找這樣的事情:

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

只需找到的div座標,就像你在做什麼,並從鼠標座標相減點擊事件。