216 votes

jQuery Scroll To bottom of the page (Défilement vers le bas de la page)

Une fois que ma page est chargée. Je veux que jQUery fasse gentiment défiler le bas de la page, en l'animant rapidement, sans à-coups.

Ai-je besoin d'un plugin comme ScrollTo pour cela ? ou est-ce intégré à jQuery d'une certaine manière ?

0 votes

Les scripts mentionnés dans les réponses précédentes, comme : $("body, html").animate({ scrollTop : $(document).height() }, 400) ne fonctionnera pas en Chrome et sera nerveux dans Safari dans l'affaire html tag dans CSS a overflow: auto; de la propriété. Il m'a fallu près d'une heure pour le découvrir.

457voto

Nick Craver Points 313913

Vous pouvez simplement animer le défilement vers le bas de la page en animant l'élément scrollTop sans plugin, 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 de la hauteur) plutôt que de document.ready .

Pour être techniquement correct, vous devez soustraire la hauteur de la fenêtre, mais ce qui précède fonctionne :

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

Pour faire défiler un ID particulier, utilisez sa fonction .scrollTop() comme ceci :

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

0 votes

Pouvez-vous contrôler la vitesse ? Et le #ID vers lequel il se dirige ?

0 votes

@AnApprentice - Si vous voulez faire défiler jusqu'à un ID particulier, cela ressemblerait à ceci $("html, body").animate({scrollTop: $("#myID").scrollTop() }, 1000); pour que ça prenne une seconde.

2 votes

Un autre problème, c'est que lorsqu'il semble terminé, et que l'utilisateur essaie de le faire défiler vers le haut, pendant un petit moment, il est bloqué et produit un effet de secousse qui empêche l'utilisateur de défiler vers le haut.

23voto

Josiah Ruddell Points 14171

Quelque chose comme ça :

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

0 votes

J'ai essayé de mettre à jour la cible en .write-comment et ça n'a pas marché. Peut-être parce qu'il est injecté dans la page ?

22voto

Sarath Ak Points 851

Vous pouvez essayer ceci

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

17voto

Alin Razvan Points 51
$('html,body').animate({ scrollTop: 9999 }, 'slow');

Aussi simple que cela, 9999 hauteur de page ... grande gamme de sorte qu'il peut atteindre le fond.

8voto

f123 Points 362
$("div").scrollTop(1000);

Ça marche pour moi. Défilement jusqu'en bas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X