要素にmousedown
イベント ハンドラーがあります。img
$('#some_image').bind({
mousedown: function(e) {
var img = e.target;
var relpos = ???;
}
})
mousedown
の相対 位置を取得するにはどうすればよいimg
ですか? 相対、つまりimg
のいずれかのコーナーのうち、最も簡単な方へ。
FWIW、私はjQueryを使用しています。
(ばかげた質問でごめんなさい。答えは些細なことだと思いますが、見つけることができず、気が狂ってしまいます...)
編集:わかりました、ここに答えがあります:
$('#some_image').bind({
mousedown: function(e) {
var offset = $(this).offset();
var relpos = [e.pageX - offset.left, e.pageY - offset.top];
// etc.
}
})
実際、生のオフセットは常に整数であるとは限らないため、生のオフセットよりもMath.round(offset.left)
andを減算する方がよいことがわかりました(図を参照)。Math.round(offset.top)
ところで、少なくとも Firebug によると、イベントのoffsetX
とoffsetY
は定義されておらず、layerX
とlayerY
はそのメンバーにリストされていません。