0

現在のブラウザ ウィンドウの実際の viewPORT サイズを特定しようとしています。私はもう試した:

  • window.innerHeight/innerWidth
  • document.documentElement.clientHeight/clientWidth
  • document.body.clientHeight/clientWidth

すべてが表示領域ではなく、ページ全体のサイズを返します。

私が最終的に達成しようとしているのは、ポップアップ メニューを強制的に画面 (ビューポート) に表示することです。現在表示されている場合、スクロールの下に表示される可能性があり、ユーザーはそれに満足していません。彼らがクリックした場所のx、yを知っています。それを表示領域のサイズ (ポップアップのサイズ) と比較して、画面外になるかどうかを確認するだけです。

ページが IFRAME に表示されていることに注意してください。したがって、正しい値を取得するために 1 レベル上に移動する必要がある場合は、それを行うことができます。

4

3 に答える 3

2
  • window.innerHeight/innerWidth

これにより、ビューポートのサイズ (この場合は iframe 内のサイズ) が明らかになりますが、IE では使用できません。

  • document.documentElement.clientHeight/clientWidth

これにより、ブラウザが標準モードの場合のビューポート サイズが得られます。通常、IE のフォールバックとして使用されます。

  • document.body.clientHeight/clientWidth

これにより、 Quirks モードでのビューポートの高さが得られます。癖モードになりたくありません。<!DOCTYPEドキュメントの を確認してください。

それを表示領域のサイズと比較する必要があるだけです

document.documentElement.scrollTop次に、 /も確認する必要がありますscrollLeft

于 2010-06-24T15:31:54.800 に答える
0

どうやら親ドキュメントに行くことで、正しい値を得ることができたようです。

ありがとう!

于 2010-06-24T18:14:41.347 に答える
0

試す

document.getElementById("").offsetWidth

上記のコードに別の要素 ID を入力し、body タグまたはラッパー div を使用してみてください。

于 2010-06-24T15:17:10.820 に答える