ホームページ > 記事 > ウェブフロントエンド > IE で `document.body.scrollTop` が 0 を返すのはなぜですか?それを修正するにはどうすればよいですか?
document.body.scrollTop を使用して IE で正確なスクロール位置を取得する
IE では、 document.body.scrollTop を通じて一貫してスクロール位置にアクセスしますスクロール中でも 0 を返します。この動作は、スクロール イベントを効果的に追跡しようとしている開発者にとっては困惑する可能性があります。
この問題に対処するために、ブラウザーは 2 つの個別のレンダリング モード、Quirks モードと Standards モードを実装しています。 Quirks モードは、Web 標準が広く採用される前に作成された古い Web サイト向けに設計されています。 Quirks モードでは、IE は document.body.scrollTop を誤って 0 に設定します。
この矛盾を解決するには、Web サイトで標準モードの doctype を使用するようにすることが 1 つの解決策です。
<!DOCTYPE html>
Web サイトは標準モードに切り替えることができません。別のアプローチがあります:
var top = (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;
このコードは両方をチェックします。 documentElement と本文。 documentElement が定義されている場合は、より正確なスクロール位置が提供されるため、それが優先されます。それ以外の場合は、document.body.scrollTop.
にフォールバックします。以上がIE で `document.body.scrollTop` が 0 を返すのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。