ホームページ  >  記事  >  ウェブフロントエンド  >  document.body.scrollTopの値が常に0になる問題の解決策 よくある標準問題_JavaScriptスキル

document.body.scrollTopの値が常に0になる問題の解決策 よくある標準問題_JavaScriptスキル

WBOY
WBOYオリジナル
2016-05-16 18:40:481057ブラウズ

ページを作成するときは、次のように document.body.scrollTop を読んでレイヤーの位置を設定できます:

window.onscroll = function (){
var oFix = document .getElementById("divfix");
oFix.style.top = document.body.scrollTop "px";
}

しかし、なぜ期待した効果が得られなかったのでしょうか、 document.body .scrollTop 値を見ると、常に 0 です。ページが で直接始まっている場合は、DTD の問題であることがわかります。問題はありません。しかし、Web 標準に準拠するには、当然 DTD が不可欠です。 DTD がある場合は、document.body.scrollTop の代わりに document.documentElement.scrollTop を使用してください。

window.onscroll = function (){
var oFix = document.getElementById("divfix");
oFix.style.top = document.documentElement.scrollTop "px"; }

編集者注:

ページに DTD がある (または DOCTYPE が指定されている) 場合は、document.documentElement を使用します。
ページに DTD がない (または DOCTYPE が指定されていない) 場合は、document.body を使用します。
これは IE と Firefox の両方に当てはまります。
互換性を保つために、次のコードを使用できます。 varscrollTop = window.pageYOffset
|| document.documentElement.scrollTop
|| document.body.scrollTop
||

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