Après le chargement de ma page. Je veux que jQuery fasse bien défiler la liste vers le bas de la page, en animant rapidement, pas en un clin d'œil.
Est-ce que j'ai besoin d'un plugin comme ScrollTo
pour cela? ou est-ce construit dans jQuery certains comment?
Vous pouvez simplement animer pour faire défiler la page en animant la propriété scrollTop
, aucun plugin requis, comme ceci:
$(window).load(function() {
$("html, body").animate({ scrollTop: $(document).height() }, 1000);
});
Notez l'utilisation de window.onload
(lorsque les images sont chargées ... qui occupent une hauteur) plutôt que document.ready
.
Pour être techniquement correct, vous devez soustraire la hauteur de la fenêtre, mais cela fonctionne:
$("html, body").animate({ scrollTop: $(document).height()-$(window).height() });
Pour faire défiler jusqu'à un ID particulier, utilisez sa .scrollTop()
, comme ceci:
$("html, body").animate({ scrollTop: $("#myID").scrollTop() }, 1000);
quelque chose comme ça:
var $target = $('html,body');
$target.animate({scrollTop: $target.height()}, 1000);
$('html,body').animate({ scrollTop: 9999 }, 'slow');
Aussi simple que cela, hauteur de 9999 pages ... large gamme pour atteindre le fond.
Tu peux essayer ça
var scroll=$('#scroll');
scroll.animate({scrollTop: scroll.prop("scrollHeight")});
$("div").scrollTop(1000);
Travaille pour moi. Fait défiler vers le bas.
En utilisant 'document.body.clientHeight', vous pouvez obtenir la hauteur visible des éléments du corps
$('html, body').animate({
scrollTop: $("#particularDivision").offset().top - document.body.clientHeight + $("#particularDivision").height()
}, 1000);
cela défile à l'id 'particularDivision'
Les scripts mentionnés dans les réponses précédentes, comme:
$("body, html").animate({
scrollTop: $(document).height()
}, 400)
ne fonctionnera pas dans Chrome et sera instable dans Safari si la propriété html
dans CSS a la propriété overflow: auto;
définie. Il m'a fallu presque une heure pour comprendre.
Pour jQuery 3, veuillez changer
$ (fenêtre) .load (fonction () { $ ("html, body"). animate ({scrollTop: $ (document) .height ()}, 1000); })
à:
$ (fenêtre) .on ("load", fonction (e) { $ ("html, body"). animate ({scrollTop: $ (document) .height ()}, 1000); } )
js
var el = document.getElementById("el");
el.scrollTop = el.scrollHeight - el.scrollTop;
$('#pagedwn').bind("click", function () {
$('html, body').animate({ scrollTop:3031 },"fast");
return false;
});
Cette solution a fonctionné pour moi. Cela fonctionne dans le défilement rapide de la page.