ページを中央までスクロールしてから、ページをリロードします (F5)。その後、まだ真ん中にスクロールします。それは正常です。私の仕事は、ページが読み込まれた後に scrollY = 0 を設定することです。
document.documentElement.scrollTop = 0 (document.body.scrollTop = 0 または window.pageXOffset = 0 内または外$(document).ready(...) or $(window).load(...)
) を設定すると、ページは一番上までスクロールされません。
私はこの機能を持っています:
function getScrollXY() {
var x = 0, y = 0;
if( typeof( window.pageYOffset ) == 'number' ) {
// Netscape
x = window.pageXOffset;
y = window.pageYOffset;
} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
// DOM
x = document.body.scrollLeft;
y = document.body.scrollTop;
} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
// IE6 standards compliant mode
x = document.documentElement.scrollLeft;
y = document.documentElement.scrollTop;
}
return [x, y];
}
ページがロードされた後にページがスクロールされても、常に x=0 を返します。
では、ページがロードされた後にスクロールを一番上に設定する方法は?
jsfiddle のコード: http://jsfiddle.net/g6w9r/1/
結果を見るための jsfiddle からのフレーム: http://fiddle.jshell.net/g6w9r/1/show/