ページを作成するときは、次のように 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
||