Map RER A, afficher informations au clic - Javascript/Node.js - Programmation
Marsh Posté le 28-09-2020 à 13:54:53
C'est un peu vague comme question, on peut parfois "tourner autour" du problème en css avec les pseudo class :active mais effectivement il y'a souvent besoin de faire encore du js pour ce genre de pop-up informative...
Y'a aussi des bidouilles en pure css pour faire des animations de menu déroulant avec des input donc tout est possible, des idées (comme tu le dit), on peut en avoir, il faut par contre définir le besoin réel (contrainte de navigateur, contrainte de CMS ou de framework, etc.).
Marsh Posté le 28-09-2020 à 14:41:31
Merci de ta réponse,
Je voudrais juste que le texte qui s'affiche lorsque je survole le nom d'une gare, reste en place lors du clic.
Les informations doivent rester où elle s'affichent.
Voici la map en lien :
https://codepen.io/gkerfers/pen/BaNpzdR
Marsh Posté le 28-09-2020 à 15:21:54
Bon ben on avances ! ^^
Déjà ton truc c'est plus du svg que de l'html, modifier des svg en css (et même en js) c'est pas forcément anodin.
Est ce que tu as une contrainte de navigateur (genre pour afficher sur un TV connecté dans un lieu spécifique) ou alors faut être compatible avec le plus grand nombre de navigateur possible (y compris mobile ?), pacque tout n'est pas forecement possible partout...
Marsh Posté le 29-09-2020 à 08:11:52
Si tu as d'autres besoins d'interactivité c'est pas envisageable de faire ca en html 5 (canvas) ?
Marsh Posté le 30-09-2020 à 09:24:00
Salut Mechkurt, non juste un écran de PC portable simple et un écran 24/27".
C'est juste une map que plusieurs personnes pourront checker en interne.
Marsh Posté le 30-09-2020 à 11:15:46
Je suis retourné voir et en fait tu as déjà du javascript dans ton truc, donc suffit d'ajouter des onclick qui ajoute une classe (et qui supprimes tous les autre noeuds l'ayant) et dans ta css faire le même display block que tu fait pour les :hover...
D'ailleurs si tu pouvais nettoyer un peu ton codepen en mettant juste le svg dans l'html, le contenu de <script> dans javascript et le contenu de <style> dans css on y verrait plus clair ! ^^
Ca donnerait quelque chose comme ça pour le css :
Code :
|
Et un truc du genre pour le javascript :
Code :
|
Marsh Posté le 30-09-2020 à 14:43:58
jeanmichjeanmich a écrit : Bonjour à tous, |
Tu devrais nettoyer un peu ton projet et simplifier (séparer) ton code entre informations (le svg dans ton bloc html), son apparence (le css dans le bloc idoine) et l’interactivité (dans le bloc javascript).
Il serait peut être plus simple pour toi d'avoir des classes step1 step2 step3 associé à tes noeuds en javascript lors des clicks successif et un affichage correspondant en css...
Marsh Posté le 30-09-2020 à 16:09:47
Je vais faire ça, c'est vrai que ce n'est pas très facile de compréhension vu la longueur du code.
Je vais tester tes lignes pour voir si ça fonctionne merci
Je reviens vers toi après.
Pour l'autre post je trouvais ça plus simple de le séparer.
Désolé pour le "spam" du coup
Marsh Posté le 30-09-2020 à 16:50:24
J'ai essayé tes lignes et ça ne fonctionne pas, tu es sûr du css ?
J'ai rangé le codepen comme il faut
Marsh Posté le 30-09-2020 à 17:22:28
Je suis repartis de ton truc mais y'a pas mon code (et tu as encore des trucs en trop comme la balise style dans le css et idem pour l'html, vire tous ce qui n'est pas le svg).
En ajoutant mon code j'ai vu que y'avais un soucis avec la partie qui éteint les zones :
Code :
|
Ce n'est pas sémantiquement juste, je supposes qu'il faudrait faire un foreach sur le document.querySelectorAll('.ville.clicked') car la on a pas accès à la propriété classList (désolé, j'ai tellement l'habitude de Jquery que je ne suis pas très à l'aise en javascript vanilla).
Si tu commentes cette ligne ça fonctionne (sauf qu'il s'allume les uns par dessus les autres).
Sinon je pensais à un truc, tu te rends compte qu'il n'ya pour le moment aucune persistance des données et que si tu fermes le navigateur du portable, aucune info d'état ne sera conservé ?
Marsh Posté le 05-10-2020 à 10:26:55
Salut Mechkurt !
Désolé mais je ne suis vraiment pas à l'aise en javascript ...
Tu ferais cette manip de quelle manière du coup ?
Je vais remettre ton code.
C'est une map qui sera consultable en interne à la RATP.
En gros, j'enregistrerai les données en faisant clic droit + enregistré sous firefox, ce qui créera une nouvelle map (un nouveau fichier .Html)
Pour modifier ensuite les informations sans passer par le code, j'utiliserai cette ligne java suivante :
<a href="javascript:document.body.contentEditable%20=%20'true';%20document.designMode='on';%20void%200">Modifier date de Début et/ou de Fin de travaux</a>
Cette ligne me permettra de supprimer, ajouter, modifier n'importe quel texte.
Marsh Posté le 05-10-2020 à 14:51:39
Code :
|
Marsh Posté le 05-10-2020 à 16:53:39
Super ça fonctionne !
Connais-tu la fonction pour "désafficher" le texte ?
BTW:
Je viens de trouver la solution pour les couleurs des logos
Je mettrai à jour la carte, lorsqu'elle sera entièrement finie (il faut que je modifie gare par gare et ça prend pas mal de temps )
Marsh Posté le 07-10-2020 à 11:39:08
Salut Mechkurt et merci pour ton aide
J'ai remis à jour la map et j'ai un petit soucis:
https://codepen.io/gkerfers/pen/BaNpzdR
Il y a un conflit entre l'automatisation des couleurs des logos/cercle de gare et l'affichage des informations gare.
Lorsque je sors les informations gare du groupe <g class="stations-infos"> et que je mets le tout dans <g class="ville"> (donc au tout début, après le <circle id=...> ) tout fonctionne mais l'automatisation des couleurs des logos ne fonctionne plus.
Lorsque je le remets (dans <g class="stations-infos"> ), l'automatisation des couleurs fonctionne mais l'affichage des informations gare ne fonctionne plus.
J'aimerais (si c'est possible) que:
- le hover fonctionne
- lorsque je clique sur le nom d'une gare, ses informations s'affichent
- lorsque je reclique sur le nom de cette gare, ses informations se "désaffichent"
- ou lorsque je clique sur le nom d'une autre gare, les information de la nouvelle gare s'affiche (et de l'autre se "désaffiche)
J'ai l'impression que je ne peux pas faire ça, à cause de ce problème de groupe, ou mon java concernant l'automatisation des couleurs est caduque ...
Je te remercie
Marsh Posté le 07-10-2020 à 12:29:36
J'ai trouvé la solution
Par contre je n'arrive pas à "désafficher" en cliquant sur le nom de la gare en question exemple :
Je clique sur le nom de la gare de La Défense
--> les infos de La Défense s'affichent
Je reclique sur le nom de la gare de La Défense
--> les infos de La Défense reste affichées
La seule manière de "désafficher" est de cliquer sur le nom d'une autre gare.
Tu aurais la soluce ?
Je te remercie
Marsh Posté le 09-10-2020 à 10:38:19
Hello Mechkurt,
J'ai remis la map à jour : https://codepen.io/gkerfers/pen/BaNpzdR
J'ai retourné le truc, mais je n'arrive pas à faire disparaitre les informations gares qui s'affichent au clic.
J'aimerais lorsque je reclique sur le nom de la gare que les informations gare se "désaffichent".
Aurais-tu une idée ?
Marsh Posté le 09-10-2020 à 13:58:12
Quelque chose comme ca ?
Code :
|
Marsh Posté le 28-09-2020 à 11:16:36
Bonjour à tous,
Pour le taf je suis en train de créer une carte de suivi des travaux du RER A.
J'aimerais que les informations qui s'affichent lors du survol du nom d'une gare à la souris, s'affichent également et reste affichées, lorsque je clique sur le nom d'une gare.
Après avoir checker sur le net, il me semble qu'il m'est impossible de le faire via du CSS mais du JS.
Avez-vous des idées ?
Je vous remercie d'avance