jquery: animer scrollLeft

Je suis assez nouveau à jquery et n'arrive pas à comprendre pourquoi mon code ne fonctionne pas. J'ai une mise en page horizontale et que vous voulez utiliser la scrollLeft() fonction (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, j'aimerais animer ce donc que lorsque #suivant est cliqué, il y a un joli effet d'animation pour les faire défiler vers la gauche de la fonction

$("#next").click(function() {
    currentElement = currentElement.next();
    scrollTo(currentElement);    
});

function scrollTo(element) {
    $(window).animate({scrollLeft: element.position().left}, 750);
}

Mais en vain. Ce que je fais mal?

  • scrollLeft() est une fonction jQuery qui fonctionne uniquement sur les éléments du DOM. animate() ne peut fonctionner que sur les DOM attributs de style, pas de fonctions.
  • Dans ma situation, j'ai constaté que certains éléments fixes couvrir le site de l'ul , et qui me erreur de l'amt est de dépassement( En fait, l'ul n'est pas de débordement). J'ai donc scrollLeft tant de fois , et ça ne fonctionne pas. Et la raison pourquoi j'ai pris l'ul est de dépassement de ce qui ne l'est pas.
InformationsquelleAutor bswinnerton | 2011-07-29