ホームページ  >  記事  >  ウェブフロントエンド  >  IE で `document.body.scrollTop` が 0 を返すのはなぜですか?それを修正するにはどうすればよいですか?

IE で `document.body.scrollTop` が 0 を返すのはなぜですか?それを修正するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-12 09:28:01899ブラウズ

Why Does `document.body.scrollTop` Return 0 in IE and How Can I Fix It?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。