ボタンがクリックされた場合にブラウザを強制的に一番上にスクロールさせる簡単な方法はありますか?
私が試してみました
jQuery('html').scrollTop();
jQuery('body').scrollTop();
jQuery(window).scrollTop();
それらのどれもページの一番上までスクロールしていないようです。
ボタンがクリックされた場合にブラウザを強制的に一番上にスクロールさせる簡単な方法はありますか?
私が試してみました
jQuery('html').scrollTop();
jQuery('body').scrollTop();
jQuery(window).scrollTop();
それらのどれもページの一番上までスクロールしていないようです。
クロス ブラウザーの奇妙さにより、一部のブラウザーは に応答し、一部のブラウザーは に応答し'html'
ます'body'
。運が良かったのかもしれませんが.scrollTop(0)
、ページを移動するのに役立ったことはありません。これを試してみてください:
jQuery('html,body').animate({scrollTop:0},0);
このバージョンはテスト済みで、すべてのデスクトップ ブラウザーとモバイル デバイスでクロス ブラウザーに対応しています。
シンプルな純粋な JavaScript、モバイルでも動作します
window.scrollTo(0,0);
次のいずれかを使用できます。
jQuery('body').scrollTop(0);
またはこれ:
jQuery(window).scrollTop(0);
または最後にこれ:
jQuery('html').scrollTop(0);
したがって、scrollTop
メソッドを呼び出してページをスクロールさせるには、scrollTopの位置を表す数値を使用して引数を渡す必要があります。それ以外の場合は、scrollTopの位置を取得する必要があるかのように機能します。
最後の2つの方法はすべてのブラウザで常に機能するはずですが、最初の方法は一部のバージョンのIEでは機能しない場合があります。
必要な HTML について誰も言及していないので、ここに追加します。
最初にアンカー要素を作成します。
<a href="#" title="Scroll to Top" class="ScrollTop">Scroll To Top</a>
このクラスは、次の jQuery によって参照されることに注意してください。
次に、jQuery を追加します。
$(document).ready(function(){
$('.ScrollTop').click(function() {
$('html, body').animate({scrollTop: 0}, 800);
return false;
});
});
アニメーションの速度を調整するには、「800」の値を変更します。
これはクロスブラウザの方法です。
function scrollableElement(els) {
for (var i = 0, argLength = arguments.length; i <argLength; i++) {
var el = arguments[i],
$scrollElement = $(el);
if ($scrollElement.scrollTop()> 0) {
return el;
} else {
$scrollElement.scrollTop(1);
var isScrollable = $scrollElement.scrollTop()> 0;
$scrollElement.scrollTop(0);
if (isScrollable) {
return el;
}
}
}
return [];
}
var scrollElem = scrollableElement('html', 'body');
$(scrollElem).scrollTop(0);
css-tricks からのコード