Comment puis-je faire en sorte que jQuery accède directement à ?

Je veux que jQuery navigue directement (sans besoin d’animation) vers un identifiant que je transmets dans une variable.

J’ai différentes marques comme id="content" , id="edit" , id="..." qui sont

titres. En faisant la validation avec PHP, je vais générer une variable comme var NAVIGATE_TO = Et je veux déplacer le site Web vers cette position id .

Comme si je domain.tld/page#edit ou #content mais avec jQuery car lorsque je charge la page, mon framework PHP ne me permet pas d’indiquer le hachage.

Vous pouvez définir location.hash sur l’ id lequel le navigateur doit accéder à:

 window.location.hash = '#edit'; 

D’après mon expérience, la solution window.location.hash ne fonctionne qu’une seule fois. Si vous ne voulez pas utiliser le plugin, vous pouvez essayer ceci:

 var navigationFn = { goToSection: function(id) { $('html, body').animate({ scrollTop: $(id).offset().top }, 0); } } 

puis appelez-le comme ceci (où someID est l’ID de l’élément que vous souhaitez faire défiler):

 navigationFn.goToSection('#someID'); 

Avec cela, vous pouvez également faire varier la vitesse d’animation (je l’ai à 0) pour qu’elle soit instantanée, mais vous pouvez transmettre la valeur à la fonction pour que le code soit réutilisable.

Utilisez le plugin jquery scrollto alors vous pouvez le faire comme ceci

 $(document).ready(function(){ $(".topMenu").click(function() { $.scrollTo($("#edit"), { duration: 0}); });