Nachdem meine Seite fertig geladen ist. Ich möchte, dass jQUery schön zum Ende der Seite scrollt und schnell animiert, kein Schnappschuss.
Benötige ich dafür ein Plugin ScrollTo
? oder ist das wie in jQuery eingebaut?
Nachdem meine Seite fertig geladen ist. Ich möchte, dass jQUery schön zum Ende der Seite scrollt und schnell animiert, kein Schnappschuss.
Benötige ich dafür ein Plugin ScrollTo
? oder ist das wie in jQuery eingebaut?
Antworten:
Sie können einfach animieren, um die Seite nach unten zu scrollen, indem Sie die scrollTop
Eigenschaft animieren. Es ist kein Plugin erforderlich, wie folgt:
$(window).load(function() {
$("html, body").animate({ scrollTop: $(document).height() }, 1000);
});
Beachten Sie die Verwendung von window.onload
(wenn Bilder geladen werden ... die Höhe einnehmen) anstatt document.ready
.
Um technisch korrekt zu sein, müssen Sie die Höhe des Fensters subtrahieren, aber das Obige funktioniert:
$("html, body").animate({ scrollTop: $(document).height()-$(window).height() });
Um zu einer bestimmten ID zu scrollen, verwenden Sie .scrollTop()
Folgendes:
$("html, body").animate({ scrollTop: $("#myID").scrollTop() }, 1000);
$("html, body").animate({ scrollTop: $("#myID").offset().top }, 1000);
$(document).height()
ist ein zu großer Wert für scrollTop
Immobilien, das merkt man an der Lockerung. Ich denke $(document).height() - window.innerHeight
sollte ok sein.
etwas wie das:
var $target = $('html,body');
$target.animate({scrollTop: $target.height()}, 1000);
$('html,body').animate({ scrollTop: 9999 }, 'slow');
So einfach ist das, 9999 Seitenhöhe ... großer Bereich, so dass es bis zum Boden reichen kann.
Die in früheren Antworten erwähnten Skripte wie:
$("body, html").animate({
scrollTop: $(document).height()
}, 400)
funktioniert nicht in Chrome und ist in Safari nervös, falls für das html
Tag in CSS die overflow: auto;
Eigenschaft festgelegt wurde. Ich brauchte fast eine Stunde, um das herauszufinden.
Für jQuery 3 ändern Sie bitte
$ (Fenster) .load (function () {$ ("html, body"). animate ({scrollTop: $ (document) .height ()}, 1000);})
zu:
$ (window) .on ("load", Funktion (e) {$ ("html, body"). animate ({scrollTop: $ (document) .height ()}, 1000);})
function scrollToBottom() {
$("#mContainer").animate({ scrollTop: $("#mContainer")[0].scrollHeight }, 1000);
}
Dies ist die Lösungsarbeit von mir und Sie finden, ich bin sicher
js
var el = document.getElementById("el");
el.scrollTop = el.scrollHeight - el.scrollTop;
$('#pagedwn').bind("click", function () {
$('html, body').animate({ scrollTop:3031 },"fast");
return false;
});
Diese Lösung hat bei mir funktioniert. Es funktioniert in Page Scroll Down schnell.