Liste déroulante en guise de sommaire - Javascript/Node.js - Programmation
Marsh Posté le 21-06-2024 à 16:39:24
Mettre un écouteur onchange sur ton select et faire un scrollto ?
https://www.google.com/search?q=van [...] +to+anchor
Apparemment y'a même plus besoin de trouver le offsetTop de l'ancre en vanilla js on peut directement faire document.querySelector('#anchor').scrollIntoView(); IE8 et + autant dire tout le monde 99.9% des gens...
https://gomakethings.com/how-to-scr [...] anilla-js/
Marsh Posté le 21-06-2024 à 19:56:11
Merci pour ta réponse mechkurt
En recherchant sur google je suis tombé sur ce lien :
https://stackoverflow.com/questions [...] select-box
Ca semble être dans l'esprit de ce que je veux, du coup j'ai essayé quelque chose (je précise que je ne maîtrise pas javascript) :
Code :
|
Mais bien entendu ça ne fonctionne pas !
Il y a forcément quelque chose que j'ai loupé dans le code, et probablement un meilleur code qui permettrait d'avoir des URL relatives (directement les ancres) à la place des URL absolues.
Pouvez-vous m'aiguiller ?
Merci
Marsh Posté le 22-06-2024 à 08:16:23
Effectivemnent pas besoin de préciser "je précise que je ne maîtrise pas javascript" quand on voit ce code :
Code :
|
Ton code n'est même pas valide, tu démarre une fonction ligne 9 que tu ne ferme jamais...
Pour que ça fonctionne il te manque aussi un window.location = goto ou bien un document.querySelector('#'+id_de_l_ancre).scrollIntoView();
Marsh Posté le 23-06-2024 à 18:00:40
merci pour ta réponse mechkurt, même si je me serais bien passé du début de ton message quelque peu sarcastique...
J'ai corrigé et maintenant ça fonctionne.
Code :
|
Marsh Posté le 23-06-2024 à 18:53:19
Hfr c'est l'élite, un petit peu d'auto dérision ne fait de mal à personne...
Spoiler : Désolé de t'avoir froissé. |
Tout ce qui est dans la balise script est inutile et peut être supprimé (ligne 8 à 16 de ton code ci-dessus).
Ça pourrait être corrigé pour dissocié le Javascript de l'html et ne pas avoir de code "inline" dans la balise, mais c'est un problème de puriste...
Du moment que cela fonctionne : onchange="this.options[this.selectedIndex].value && (window.location = this.options[this.selectedIndex].value);" cela résout ton problème.
Marsh Posté le 21-06-2024 à 16:16:27
Bonjour,
je souhaite remplacer le sommaire sous forme de liste par un <select> qui permet de prendre moins de place lorsqu'il y a beaucoup d'items.
Ce que je veux faire c'est comme sur ce site : https://www.frandroid.com/comment-f [...] resolution
En gros l'internaute clique sur la liste déroulante qui sert de sommaire pour accéder aux diverses parties composant la page, il clique sur le titre correspondant au h2 de la partie en question et est directement redirigé sur cette partie, de la même manière qu'une encre, la différence ici c'est que ce n'est pas un lien mais une liste.
J'avais déjà fait des recherches et j'étais tombé sur un site qui expliquait qu'il était possible de bidouiller un truc en js pour que ça fonctionne, mais je n'arrive plus à mettre la main sur le lien du site en question.
Avez-vous une idée ?
Merci.
Message édité par Ze_Noob le 21-06-2024 à 16:19:20