2010-10-13 7 views
3

Je viens de lancer http://elliewauters.com & J'ai un petit problème que je voudrais corriger, le site utilise beaucoup de défilement horizontal animé pour aller d'une page à l'autre, mais à l'actualisation de la plupart des navigateurs se souviennent la position de défilement & revenir là où j'étais avant, je ne veux pas ça. Essayez d'aller à la page «About» & puis rafraîchir. Vous verrez que le logo & se trouve au milieu de la page car c'est à ce moment que vous êtes arrivé sur le site pour la première fois.jQuery scrollLeft ne fonctionne pas

Je voudrais aider avec l'une des deux choses:

  1. Pour rétablir la position de défilement de retour à 0,0 lors de l'actualisation de la page OU
  2. Pour déplacer le menu logo & vers le haut si la valeur scrollLeft est supérieure à 1.

J'ai essayé d'utiliser $(window).scrollLeft(0); en vain &

scrollLeft = $(window).scrollLeft(); 
console.log(scrollLeft) 
if (scrollLeft>1) { 
    $('#header').addClass('notLeft').css('top','0%'); 
} else { 
    $('#header').addClass('left').css('top','25%'); 
} 

ne fonctionne pas, est-ce que quelqu'un s'il vous plaît avoir une idée de comment je pourrais réaliser ce que je veux?

Merci à l'avance

+0

Juste une idée: Je ne sais pas si cela va fonctionner, mais vous pouvez essayer d'attraper cette « rafraîchissement » dans onleave et réinitialiser à ce moment-là? – Vinzenz

+0

L'en-tête ne bouge pas du tout dans Firefox. – Mottie

Répondre

6

bien Firefox ne fonctionnait pas à cause de la console.log(scrollLeft) il devrait fonctionner après le retrait de cela. En ce qui concerne le problème que vous rencontrez, je suppose que cela ne se passe que dans IE? La solution est de ne pas utiliser $(window) mais de le remplacer par $(document). Il faut donc utiliser:

scrollLeft = $(document).scrollLeft(); 
+0

J'ai gardé le console.log mais j'ai ajouté un point-virgule à la fin que j'ai omis par erreur. Passer à '$ (document)' fait que tout fonctionne mais seulement dans Firefox, des idées pourquoi ça ne marche pas dans webkit? – Zander

+0

Vous ne savez pas, mais 'console.log' n'est valide que si firebug fonctionne ... essayez de le supprimer complètement, puis testez. – Mottie

2

Je sais c'est un vieux fil, mais .scrollLeft() en jQuery ne fonctionne pas pour moi sur Android aussi, sous jQuery 1.9.1 aujourd'hui (Avril 2013). Essayez ceci:

window.scrollTo(x, y); 

Cela a fonctionné pour moi sur toutes les plates-formes récentes et OS, y compris les téléphones Android.

1
$("#el").animate({ scrollLeft:110 }, "fast");