2009-06-25 20 views
1

良い一日のみんな。Firefox:ビューポートの左上隅のマウス座標を取得

私はFirefoxの拡張機能に取り組んでおり、マウスカーソルから一定のオフセットでツールチップをポップアップしたいと思います。しかし、このオフセットがビューポートから外れると問題が発生します。それは表示されますが、ユーザーはそこをスクロールする必要があります。現在のビューポート内でツールチップのポップアップを動かすことでこれを強化したいと考えています。

しかし、問題は、私が文書内にある唯一の手掛かりがマウスの位置であるためです。部分的な解決策は、現在のマウス座標+ツールヒントの幅/高さを調べ、window.innerHeightまたはwindow.innerWidthを超えるかどうかを調べることによって、ツールチップの移動量を計算することです。

しかし、非常に長いドキュメントで、ユーザーが適切なビットをスクロールすると、マウス座標は非常に大きなy値を持つことに気付きました。したがって、私はwindow.innerHeightだけに依拠して、ビューポート内にまだ存在するかどうかを確認することはできません。ユーザーがたくさんスクロールした場合、誰でもビューポートの左上隅のマウス座標を見つける方法を見つけましたか?

ありがとうございます! =)

答えて

2

具体的にはあなたのケースでは、document.body.scrollTopです。

しかし、これはかなりIE固有のもので、ほとんどのFireFox拡張機能の目的を破っています。 ;-)また、起動するDTDの依存関係もあります。

これは、あなたが欲しいもののようになります。Determining browser dimensions and document scroll offsets

+0

私は昨晩寝る前に答えを見ました。私はそれを試してみました。しかし、それは朝早すぎると私は眠りに落ちて返信することができました。私はscrollTop値を取得しようとしていましたが、何らかの未知の理由で常にゼロを返しました。 window.pageXOffsetとwindow.pageYOffsetは頭の中でまっすぐに釘を打つ。どうもありがとうございました! =)私は新しいことを学びました。私はできればうれしく、これを2回upvoteします。 – wai

1

私はあなたがscrollTopプロパティのようなものを探していると思う:

scrollTopスプライトは、要素の内容が上方にスクロールされたピクセル数を取得または設定します。

+0

ありがとうございます。さらに調査します。 – wai

0

@WAI - まああなたが言ったことは正しいですが、正確にあなたがFirefoxの拡張機能のために働いている場合は、以下を使用する必要があります:

window.content.pageXOffset 

OR

window.content.pageYOffset 
関連する問題