ScrollTop()jquery関数がFirefoxの「body」要素で動作しない理由がわかりません。
$('body').scrollTop(0);
次を使用して問題を修正しました:
$(window).scrollTop(0);
ただし、jqueryのドキュメントによると、scrollTop()はこの例のようにすべての要素で機能するはずです。
$( "div.demo" ).scrollTop( 300 );
「nav」と「main」でもテストしましたが、どちらも機能していません。
スクロール
$(window).scrollTop(0);
はすべてのブラウザIE9 +でサポートされているようです(IE8かもしれませんが、それ以上テストしていません)。
アニメーションスクロール
スクロールをアニメーション化する場合、window
オブジェクト(1.11.2テスト済み)を使用すると、jQueryはエラーを返します。代わりに、スクロールをアニメーション化するには、html
とbody
の両方を使用して、どちらか一方を利用するエンジンをカバーするのが最善です。そう:
$('html, body').animate({scrollTop:0},500);
は、0.5秒でブラウザの上部までスクロールします。
スクロール位置
$('html,body').scrollTop()
を使用してページの現在のスクロール位置を見つけることはできません-少なくともChromeはこれをサポートしていません(常に0を返します)。ページの位置、$(window).scrollTop();
を使用する必要があります。
ブラウザ間で一貫性が必要な場合は、window
を使用します。
$(window).scrollTop();
これを試して:
スクロールするdiv:
<div id="top"></div>
上部のjsをスクロールします:
$('html,body').animate({scrollTop: $('#top').offset().top},'slow');