2011-07-28 14 views
3

ユーザーが画像をクリックした場所を見つけることはできますか?ユーザーがクリックした画像の部分を取得

私はイメージを持っています。イメージ上には、ユーザーがクリックできます。そして、ユーザーがクリックしたときに、場所を取得する方法を見つけようとしています。

+0

あなたは(http://en.wikipedia.org/wiki/Image_map)[イメージマップ]をお探しですか? – Mrchief

答えて

6

クリックすると、イベントオブジェクトを使用してユーザーがクリックした座標が表示されます。

$("imageSelector").click(function(e){ 
    var pos = $(this).position(); 
    //The following are the x/y coordinates of the mouse click relative to image. 
    var x = e.pageX - pos.left; 
    var y = e.pageY - pos.top; 
}); 
+0

このメソッドは、画像の境界線、パディング、マージンの太さによってオフになります。 –

+0

イメージタグにパディングを与えることはできないと思います。はい、余白や境界線がある場合は、それも考慮する必要があります。しかし、イメージタグに縁や余白を与えることはほとんどありません。 – ShankarSangoli

+0

もちろん、それはパディングを持つことができます。 [ここ](http://jsfiddle.net/VkezC/4/)を参照してください。画像には余白やパディングが頻繁にあります。 –

1

マウスの位置を簡単に取得できます。次に、画像に対してそのポイントに何かを追加できます。ここで

は、マウスの位置の例です:jquery.com

2

を考慮にマージン、パディング、そして国境を取りに失敗した方法によってだまされてはいけません!

これは必要なコードです。 :

$("#myImage").click (function (evt) { 

    var jThis    = $(this); 
    var offsetFromParent = jThis.position(); 
    var topThickness  = (jThis.outerHeight(true) - jThis.height())/2; 
    var leftThickness  = (jThis.outerWidth (true) - jThis.width())/2; 

    //--- (x,y) coordinates of the mouse click relative to the image. 
    var x     = evt.pageX - offsetFromParent.left - leftThickness; 
    var y     = evt.pageY - offsetFromParent.top - topThickness; 
}); 


See it in action at jsFiddle.


関連する問題