jquery: animer scrollLeft

Je suis assez nouveau pour jquery et n’arrive pas à comprendre pourquoi mon code ne fonctionne pas. J’ai une disposition horizontale et je veux utiliser la fonction scrollLeft () qui fonctionne parfaitement avec ce code

$("#next").click(function() { currentElement = currentElement.next(); scrollTo(currentElement); }); function scrollTo(element) { $(window).scrollLeft(element.position().left); } 

Mais idéalement, je voudrais animer ceci pour que lorsque l’on clique sur #extension il y ait un bel effet animé pour la fonction de défilement à gauche

 $("#next").click(function() { currentElement = currentElement.next(); scrollTo(currentElement); }); function scrollTo(element) { $(window).animate({scrollLeft: element.position().left}, 750); } 

Mais en vain. Qu’est-ce que je fais mal?

Vous voudrez quelque chose comme ça:

 $("#next").click(function(){ var currentElement = currentElement.next(); $('html, body').animate({scrollLeft: $(currentElement).offset().left}, 800); return false; }); 

Je crois que cela devrait fonctionner, il est adopté à partir d’une fonction scrollTop .

Tout d’abord, je vous ferai remarquer que les animations css fonctionneraient probablement mieux si vous le faites beaucoup, mais j’ai fini par obtenir l’effet désiré en enveloppant .scrollLeft dans .animate

 $('.swipeRight').click(function() { $('.swipeBox').animate( { scrollLeft: '+=460' }, 1000); }); $('.swipeLeft').click(function() { $('.swipeBox').animate( { scrollLeft: '-=460' }, 1000); }); 

Le second paramètre est la vitesse et vous pouvez également append un troisième paramètre si vous utilisez un défilement régulier.