2017-02-07 2 views
0

J'utilise hashchange pour naviguer sur un site avec du contenu affiché/caché. Le problème est, je veux aussi avoir un saut de page en utilisant une balise d'ancrage. Cela casse le site et affiche le contenu initial. Je n'arrive pas à trouver une solution pour cela.Balises d'ancrage Page brisée qui a Hashchange URL

Existe-t-il un moyen de créer une fonction qui vous amène à une balise d'ancrage sans utiliser <a href="#anchor">Link to Anchor</a>?

Répondre

0

Vous pouvez utiliser un patch de défilement:

$(".scroll-link").click(function(e){ 
    e.preventDefault(); 
    var url = $(this).attr('href'); 
    $("body,html").animate({scrollTop: $(url).scrollTop()}); 
}) 

Et il suffit d'ajouter le .scroll-link aux liens que vous voulez faire défiler au lieu d'utiliser la hashchange. De plus, il anime le défilement.

+0

C'est génial, et je vais probablement l'utiliser à un moment donné pour quelque chose d'autre, mais j'aurais dû expliquer plus en détail. Le site est techniquement une page, mais avec divs étant caché/montré. Les liens sur l'état initial de la page sont 4 liens d'articles récents dans une section qui est cachée. Donc, quand on clique sur le lien de l'article 1, je veux que la section cachée soit affichée au point où vit l'article 1. J'ai fini par créer un autre état hashchange et en utilisant 'scrollIntoView();' pour accéder à l'article. Je ne veux pas que ça s'anime dans ce cas. – AdamDallas

+0

En fait, si vous utilisiez ceci, vous devrez ajouter 'e.preventDefault()' pour empêcher le lien de passer. – TricksfortheWeb