jQuery Scroll to the page bottom


196

ページの読み込みが完了した後。jQUeryをページの一番下までうまくスクロールさせ、スナップや衝撃ではなく、すばやくアニメーション化したい。

ScrollToそのようなプラグインは必要ですか?それともjQueryに組み込まれていますか?

回答:


416

次のscrollTopように、プロパティをアニメーション化することで、ページをスクロールダウンしてアニメーション化することができます。プラグインは必要ありません。

$(window).load(function() {
  $("html, body").animate({ scrollTop: $(document).height() }, 1000);
});

使用を注意してくださいwindow.onload(イメージがロードされたときに...高さを占める)ではなく、document.ready

技術的に正しいためには、ウィンドウの高さを引く必要がありますが、上記は機能します:

$("html, body").animate({ scrollTop: $(document).height()-$(window).height() });

特定のIDまでスクロールするには.scrollTop()、次のようにそのを使用します。

$("html, body").animate({ scrollTop: $("#myID").scrollTop() }, 1000);

2
もう1つの問題は、それが完了したように見え、ユーザーが少しロックされた状態でスクロール
しよう

1
@AnApprentice-これはすぐに発生するため(デフォルトでは400ミリ秒)、その問題を緩和するためにすばやくスクロールすることをお勧めします。
Nick Craver

3
ロックは距離が離れているためです。表示されているアニメーションを過ぎてアニメーション化しています。
Josiah Ruddell、2010年

27
@NickCraver-最新バージョンのjQueryでは、.scrollTop()が特定のIDにスクロールするように機能していないようです。.offset()。topで動作するはずです: $("html, body").animate({ scrollTop: $("#myID").offset().top }, 1000);
Paolo Gibellini

3
この回答は編集する必要があります。プロパティの$(document).height()値が大きすぎるscrollTop場合は、緩和することでそれを確認できます。$(document).height() - window.innerHeight大丈夫だと思います。
シルベノン2014

22

このようなもの:

var $target = $('html,body'); 
$target.animate({scrollTop: $target.height()}, 1000);

ターゲットを.write-commentに更新しようとしましたが、機能しませんでした。それがページに挿入されているためでしょうか?
AnApprentice 2010年

16
$('html,body').animate({ scrollTop: 9999 }, 'slow');

これと同じくらい簡単に、9999ページの高さ...範囲が広く、下部に到達できます。


1
これは完璧ではありません。まれに、それより長いページ、特に無制限のコンテンツを動的にロードするページがある場合もあります。これは途中でスクロールを停止します。
Akhil Gupta

13

あなたはこれを試すことができます

var scroll=$('#scroll');
scroll.animate({scrollTop: scroll.prop("scrollHeight")});

10
$("div").scrollTop(1000);

私のために働く。一番下までスクロールします。


13
あなたのページが1000pxより長い場合はそうではありません。
Volomike

4

以前の回答で言及されたスクリプト:

$("body, html").animate({
    scrollTop: $(document).height()
}, 400)

CSSのタグにプロパティが設定されている場合Chrome では機能せずSafari ジャンプします。理解するのに1時間近くかかりました。htmloverflow: auto;


3

'document.body.clientHeight'を使用すると、body要素の見た高さを取得できます

$('html, body').animate({
    scrollTop: $("#particularDivision").offset().top - document.body.clientHeight + $("#particularDivision").height()
}, 1000);

これはid 'particularDivision'でスクロールします


1

jQuery 3の場合、変更してください

$(window).load(function(){$( "html、body")。animate({scrollTop:$(document).height()}、1000);})

に:

$(window).on( "load"、function(e){$( "html、body")。animate({scrollTop:$(document).height()}、1000);})


1
function scrollToBottom() {
     $("#mContainer").animate({ scrollTop: $("#mContainer")[0].scrollHeight }, 1000);
}

これは私からの解決策であり、あなたは見つけるでしょう、私は確信しています


0

js

var el = document.getElementById("el");
el.scrollTop = el.scrollHeight - el.scrollTop;

このコードは問題の解決に役立つ可能性がありますが、なぜまたはどのように質問に答えるは説明していません。この追加のコンテキストを提供すると、その長期的な教育的価値が大幅に向上します。回答を編集して、適用される制限や前提条件などの説明を追加してください。
Toby Speight

0
$('#pagedwn').bind("click", function () {
        $('html, body').animate({ scrollTop:3031 },"fast");
        return false;
});

この解決策は私にとってうまくいきました。Page Scroll Downで高速に動作しています。


0
var pixelFromTop = 500;     
$('html, body').animate({ scrollTop: pixelFromTop  }, 1);

したがって、ページを開くと、1ミリ秒後に自動的に下にスクロールします

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.