0

同じイメージマップを共有する複数の画像がある場合、ユーザーが画像をクリックしたときにどの画像がクリックされたかを検出する方法はありますか?

建物 (単純な画像) がマップ上に配置され、ドラッグできる小さな JavaScript アプリを作成しました。ユーザーが建物をクリックすると、e.target を使用して建物を簡単に取得し、ドラッグすることができます。ただし、(クリックの精度を上げるために) イメージマップを追加すると、e.target が機能しなくなります。どの画像がクリックされたかを知る方法はまだありますか? その画像がイメージマップを使用している場合、JavaScriptが画像がクリックされたことを検出できないのは少し奇妙に思えますか?

では、2 つの画像があり、両方とも usemap="samemap" を使用している場合、imagemap がトリガーされたときに 2 つの画像のどちらがクリックされたかを調べるにはどうすればよいでしょうか?

4

1 に答える 1

0

document.elementFromPoint(x,y) を使用して、この問題の解決策を見つけました。指定された座標にある要素を単純に示します。イメージマップをクリックしたときのマウスクリックの座標をキャッチすることで、イメージマップの下にあるイメージを見つけるために使用できます。Opera と Firefox の場合、イメージマップがまだそこにある場合でも、elementFromPoint がイメージを提供します。Internet Explorer と Google Chrome では、イメージマップを一時的に無効にし、document.elementFromPoint を使用して、イメージマップを再度有効にする必要がありました。

これを見つけた後、別の方法に切り替えましたが、他の人の助けになるかもしれません。

于 2010-05-07T13:02:31.703 に答える