2010-11-23 39 views
0

je vraiment, vraiment espérons que quelqu'un va m'aider avec cela! Merci beaucoup si vous le faites! :)javascript ne fonctionne pas quand "examplelink.php # ancre" est cliqué

J'ai deux pages ... un nom index.php et un nommé portfolio.php. Mon en-tête (identique sur chaque page) contient des ancres qui les redéfinissent à la page portfolio.php (portfolio.php # blogg).

J'ai aussi un code javascript pour défilement régulier (cela devrait fonctionner sur toutes les pages), mais il ne fonctionne pas sur les liens d'ancrage d'en-tête quand je suis dans une autre page, puis portfolio.php.

Que puis-je faire pour obtenir le javascript de fonctionner quand je par exemple appuyez sur "portfolio.php # blogg" dans la page index.php ?

Heres mon javascript:

window.addEvent('domready',function() { new SmoothScroll({ duration: 800 }); }); 

Répondre

0

Hmmm .... Le problème, si je comprends bien, est que le navigateur saute à la position d'ancrage du fragment arrivant d'une autre page, avant que l'objet est SmoothScroll chargé. La première chose qui vient à l'esprit serait une solution qui utilise des sessions ou des cookies. Lorsqu'un utilisateur est sur la page d'index et clique sur un lien vers le portefeuille qui doit faire défiler jusqu'à l'ancre #blogg: Au lieu d'ajouter le fragment de hashtag à l'URL du lien, enregistrez un cookie qui indique que la page doit être défilée et lien directement vers le haut de la page du portfolio.

Puis, dans l'événement de la page de portefeuille domready, chargez l'objet SmoothScroll, vérifiez la présence du cookie, faites défiler jusqu'à l'ancrage #blogg s'il existe et supprimez le cookie.

+0

Oui, vous avez compris ma question tout à fait! :) Mais j'ai besoin d'une réponse plus spécifique si cela est possible. Je ne suis pas sûr de savoir comment le faire! Merci beaucoup! :) –

0

Vous ne nous donnez pas beaucoup d'informations ici, mais je suppose que SmoothScroll est celui de MooTools? Jetez un oeil à ceci: http://davidwalsh.name/mootools-onload-smoothscroll

window.addEvent(‘domready’, function() { 
    new SmoothScroll({ duration:700 }, window); 
    var el = window.location.hash.substring(1); // the hash 
    if(el) { 
     window.scrollTo(0,0); 
     var scroll = new Fx.Scroll(
      window, 
      { wait: false, duration: 700, transition: Fx.Transitions.Quad.easeInOut } 
     ); 
     scroll.toElement(el); 
    } 
}); 
+0

oui, c'est celui de moo tools! :) http://davidwalsh.name/smooth-scroll Votre code semble presque fonctionner! : O Mais pas tout à fait .. Il charge la page mais ne descend pas à l'ancre –

+0

existe quelque chose de similaire en utilisant jquery? –