0

ゲーム用のマップがあります。クリックすると、マップ上のマウス座標のアラートが表示されるスクリプトがあります。

マップ スケールは 1 マップ単位から 2.5 ピクセルで、マップは -600、600 から始まり、600、1700 まで下がります。したがって、マウスのピクセルを単純に捨てることはできません。

私はそれを機能させました(そしてそれについてかなり満足していました)が、残念ながらIE(6)には問題があります。スクロールパラメータを正しく取得していないIEに絞り込みました。

問題のある関連コードは次のとおりですが、完全なコードはhttp://woarl.com/map/ieMap.htmlにあります。

tempX = event.clientX + document.body.scrollLeft;
tempY = event.clientY + document.body.scrollTop;

助けてくれてありがとう

4

2 に答える 2

4

試す:

tempX = event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft);
tempY = event.clientY + (document.documentElement.scrollTop || document.body.scrollTop);

ページを確認しました。DOCTYPEはIEを標準モードにしているため、scrollXXX必要なプロパティは実際にはdocument.documentElementではなく、にありdocument.bodyます。

于 2009-01-14T15:42:52.817 に答える
2

マウスの座標位置は、特にドキュメントまたはビューペインのどちらを基準にする必要があるかを仕様が示していないため、ひどいものです。http://www.quirksmode.org/js/events_properties.htmlの下部に、問題の適切な説明と、すべてのブラウザーで機能するスクリプトの例があります。

document.documentElement.scroll(Left|Top)特に、eventパラメータとdocument.bodyパラメータだけでなく追加する必要があるようです。

于 2009-01-14T15:43:42.240 に答える