Comment puis-je utiliser le scrolltop sans animation
Ce code fonctionne:
var offTop = $('#box').offset().top;
offTop = offTop-43;
$('#mainCt').animate({scrollTop: '+=' + offTop + 'px'}, 400);
Et voici mes (solutions qui ne fonctionnent pas):
$("#mainCt").scrollTop('+=' + offTop + 'px'); // doesn't work
$("#mainCt").scrollTop('+='+offTop); // doesn't work
hhh = setTimeout(' $("#mainCt").scrollTop('+offTop+');',800); // doesn't work
DÉMO
http://jsfiddle.net/DNNFF/9/
peut-être si vous ne voulez pas une animation ou quelque chose d'extraordinaire, utilisez simplement une ancre
<a name="top"></a>
Placez-le là où vous devez faire défiler
et dans votre fonction où vous appelez utiliser
document.location.href="#top";
Vous pouvez également créer une fonction pour ajouter l’ancre avant l’élément, faire la chose document.location
et ensuite supprimer cette ancre.
Essaye ça:
var offTop = $('#box').offset().top - 43;
$('#mainCt').scrollTop(offTop);
La propriété scrollTop
accepte uniquement un entier, aucun suffixe ou unité requis.
Ignorer jQuery. Il suffit d'utiliser JavaScript:
window.scroll(0, 0);
http://api.jquery.com/scrollTop/
$(window).scrollTop(offTop)
Pourquoi ne pas l'utiliser avec moins de temps? Je l'ai tripoté et il n'y avait pas d'animation. Puisqu'il n'y aura pas le temps de voir l'animation, il n'y aura aucune animation du tout.
var offTop = $('#box').offset().top;
offTop = offTop-43;
$('#mainCt').animate({scrollTop: '+=' + offTop + 'px'}, 50); //50 added here as duartion
Tu ne peux pas jouer avec la durée?
var offTop = $('#box').offset().top;
offTop = offTop-43;
$('#mainCt').delay('800').animate({scrollTop: '+=' + offTop + 'px'}, 1);
var offTop = $('#box').offset().top;
$(window).scrollTop(parseInt(offTop))