24

ボタンがクリックされた場合にブラウザを強制的に一番上にスクロールさせる簡単な方法はありますか?

私が試してみました

jQuery('html').scrollTop();
jQuery('body').scrollTop();
jQuery(window).scrollTop();

それらのどれもページの一番上までスクロールしていないようです。

4

5 に答える 5

56

クロス ブラウザーの奇妙さにより、一部のブラウザーは に応答し、一部のブラウザーは に応答し'html'ます'body'。運が良かったのかもしれませんが.scrollTop(0)、ページを移動するのに役立ったことはありません。これを試してみてください:

jQuery('html,body').animate({scrollTop:0},0);

このバージョンはテスト済みで、すべてのデスクトップ ブラウザーとモバイル デバイスでクロス ブラウザーに対応しています。

于 2012-05-24T21:30:55.813 に答える
32

シンプルな純粋な JavaScript、モバイルでも動作します

window.scrollTo(0,0);
于 2012-05-24T21:32:27.807 に答える
6

次のいずれかを使用できます。

jQuery('body').scrollTop(0);

またはこれ:

jQuery(window).scrollTop(0);

または最後にこれ:

jQuery('html').scrollTop(0);

したがって、scrollTopメソッドを呼び出してページをスクロールさせるには、scrollTopの位置を表す数値を使用して引数を渡す必要があります。それ以外の場合は、scrollTopの位置を取得する必要があるかのように機能します。

最後の2つの方法はすべてのブラウザで常に機能するはずですが、最初の方法は一部のバージョンのIEでは機能しない場合があります。

于 2012-05-24T21:23:46.817 に答える
2

必要な 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」の値を変更します。

于 2014-05-28T21:45:16.380 に答える
0

これはクロスブラウザの方法です。

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 からのコード

于 2012-05-24T21:31:41.993 に答える