1

IE 7、8、9、chrome、firefoxでは、mouseHandlerのpageX / Yプロパティはページの上部からの相対位置を参照し、clientX/Yプロパティは現在のビューポートからの相対位置を示します。IE 10では、pageX/YはclientX/Yと同じように見えます。既知の回避策はありますか?

このhttp://jsfiddle.net/FCTUW/2/を試すことができ ます。右下のページの一番下までスクロールして、灰色の長方形の上にマウスを移動します。

SOがコードを必要としているため、座標を見つけるために使用されるコードは次のとおりです...

canvas.mousemove(function(e){
var pageCrds = '('+ e.pageX +', '+ e.pageY +')',
    clientCrds = '('+ e.clientX +', '+ e.clientY +')';

この変更が行われた理由、または正しいページ座標を取得する方法を誰かが知っていますか?

4

1 に答える 1

1

私はあなたと同じ結果を見ていません。スクリプトの実際の結果が表示されていない可能性があります。または、誤って同じプロパティを2回書き込んだ可能性があります。いずれにせよ、以下の結果は、デモを実行しているWindows8上のInternetExplorer10からのものです。

ここに画像の説明を入力してください

これは、MSDNが述べていることclientpage価値観と一致しています。

クライアントの座標は、ページのスクロールオフセットを反映していません。ドキュメントの左上隅を基準にしたマウスポインタの座標を取得するには、pageXプロパティとpageYプロパティを使用します。

于 2013-01-24T02:10:48.110 に答える