Je ne comprends pas pourquoi la fonction scrollTop () jquery ne fonctionne pas sur l'élément 'body' sur Firefox.
$('body').scrollTop(0);
J'ai corrigé mon problème en utilisant:
$(window).scrollTop(0);
Cependant, selon la documentation de jquery, scrollTop () est supposé fonctionner sur tous les éléments comme dans cet exemple:
$( "div.demo" ).scrollTop( 300 );
J'ai également testé avec 'nav' et 'main' mais cela ne fonctionne pas non plus.
Faire défiler
$(window).scrollTop(0);
semble être supporté par tous les navigateurs IE9 + (peut-être IE8 mais je ne teste plus dessus).
Défilement animé
Si vous souhaitez animer un défilement, jQuery renvoie une erreur si vous utilisez l’objet window
(testé avec la version 1.11.2). Pour animer un parchemin, il est préférable d’utiliser html
et body
pour couvrir les moteurs qui utilisent l’un ou l’autre. Alors:
$('html, body').animate({scrollTop:0},500);
fera défiler vers le haut du navigateur dans une demi-seconde.
Position de défilement
Vous ne pouvez pas utiliser $('html,body').scrollTop()
pour trouver la position de défilement actuelle de la page - au moins, Chrome ne le prend pas en charge (renvoie toujours 0). Au lieu de cela, pour trouver systématiquement la position de défilement d'une page, il est nécessaire d'utiliser $(window).scrollTop();
.
Utilisez window
si vous voulez une cohérence entre les navigateurs.
$(window).scrollTop();
essaye ça:
votre div à faire défiler:
<div id="top"></div>
et faites défiler en haut js:
$('html,body').animate({scrollTop: $('#top').offset().top},'slow');