Accueil > Forum > > > > Menu dépliant reste déplié
Menu dépliant reste déplié
jeudi 14 janvier 2010 à 12:43:09 |
Menu dépliant reste déplié

jpthali
|
Salut à tous,
merci pour ce forum "hyper réactif".
J'utilise un script pour un menu déroulant qui fonctionne très bien, la page html appelle un fichier JS avec ce code dedans:
Code Javascript : function afficheMenu(obj){
var idMenu = obj.id;
var idSousMenu = 'sous' + idMenu;
var sousMenu = document.getElementById(idSousMenu);
/*****************************************************/
/** on cache tous les sous-menus pour n'afficher **/
/** que celui dont le menu correspondant est cliqué **/
/** où 4 correspond au nombre de sous-menus **/
/*****************************************************/
for(var i = 1; i <= 6; i++){
if(document.getElementById('sousmenu' + i) && document.getElementById('sousmenu' + i) != sousMenu){
document.getElementById('sousmenu' + i).style.display = "none";
}
}
if(sousMenu){
//alert(sousMenu.style.display);
if(sousMenu.style.display == "block"){
sousMenu.style.display = "none";
}
else{
sousMenu.style.display = "block";
}
}
}
Le menu lui même dans le html est de la forme:
Code HTML : <div class="menu" id="menu3" onclick="afficheMenu(this)">
<a href="#">type de médias</a>
</div>
<div id="sousmenu3" style="display:none">
<div class="sousmenu">
<a href="nevil_story_accueilB.html">publicités télévisées</a>
</div>
<div class="sousmenu">
<a href="nevil_story_accueilC.html">publicités internet</a>
</div>
</div>
là par exemple le menu principal enroulé "type de médias" et quand on clique dessus, apparaissent deux sous-menus "publicités télévisées" et "publicités internet", qui envoient vers les pages html correspondantes qui contiennent le contenu afférent.
Seul petit soucis, lorsqu'on clique sur un des liens de sous menu, après le chargement de la page liée, le menu revient en position fermée.
Est-il possible de faire en sorte que le menu reste en position "ouverte" dans laquelle on a cliqué (sans tricher si possible en le forçant à rester ouvert page par page via html) ?
J'ai cru comprendre qu'il fallait utiliser la fonction "php echo ($_SERVER["PHP_SELF"]" mais j'avoue ramer un brin. Si quelqu'un pouvait m'aiguiller.
D'autre part faut-il impérativement pour que cette fonction fonctionne que les pages soient en php et non en html ?
merci !
|
|
samedi 16 janvier 2010 à 08:37:38 |
Re : Menu dépliant reste déplié

PetoleTeam
|
Bonjour,je présumes que ce script est commun à toutes les pages, aussi une façon, parmi d'autres,serait de jouer avec une variable et d'afficher le menu correspondant sur le onload du document.
Code Javascript : var id_Active = "menu3";
window.onload = function(){
afficheMenu( document.getElementById( id_Active));
}
l' id_Active étant bien sur différente d'une page à l'autre...
;O)
|
|
samedi 16 janvier 2010 à 14:53:20 |
Re : Menu dépliant reste déplié

thalijp
|
salut,
merci pour cette réponse, mais si je comprends bien, il faut mettre ce code sur chaque page de destination ouverte par les sous-menus, pour indiquer "à la main" si le sous menu visité doit rester ouvert. Donc changer le code sur chaque page de destination.
J'aurais préférer en fait qu'un seul code définisse une fois pour toute l'action à effectuer pour chaque sous-menu cliqué, et ne pas être obligé de changer le code pour chaque page ouverte.
Je ne sais pas si c'est possible mais y a t-il une manière automatique de faire en sorte que le menu cliqué reste ouvert ?
Car en fait j'ai des occurences qui sont communes à plusieurs sous menus.
Ce qui fait que dans un cas "manuel" où il faut à chaque page dire si le menu est ouvert ou pas, pour certaines occurrences qui peuvent être trouvées en passant par 3 sous menus différents, je vais être obligés de créer à chaque fois 3 pages différentes indiquant sur chacune d'elle quel menu est ouvert, selon la manière dont le visiteur a appelé cette occurence.
Je ne sais pas si je suis très clair.
merci
|
|
dimanche 17 janvier 2010 à 07:03:48 |
Re : Menu dépliant reste déplié

PetoleTeam
|
Bonjour,
Seul petit soucis, lorsqu'on clique sur un des liens de sous menu, après le chargement de la page liée, le menu revient en position fermée.
Cela signifie donc bien que le menu est déjà intégrer sur chaque page.
Ceci n'était qu'une façon de voir les choses
Tu peux utiliser les cookies
- stockage du cookies sur le click d'un lien qui t'indique la référence du menu cliquée
- passage de la référence du menu cliquée en paramètre de l'URL
- ou encore autre...
et à l'ouverture de la page
- récupération de la référence du menu cliquée et affichage de celui ci...
;O)
|
|
dimanche 17 janvier 2010 à 13:18:23 |
Re : Menu dépliant reste déplié

thalijp
|
salut,
je sais en gros quel principe il faut, le problème étant de l'appliquer. Comme je le dis plus haut j'ai cru comprendre qu'il faut utiliser une fonction du genre "php echo ($_SERVER["PHP_SELF"]" mais je rame pour l'utiliser.
Si tu pouvais m'éclairer sur cette méthode ou un des autres que tu proposes, ça serait merveilleux :)
merci
|
|
lundi 18 janvier 2010 à 01:22:54 |
Re : Menu dépliant reste déplié

thalijp
|
resalut,
en fait je complète un peu ma question.
La question sous-jacente de PetoleTeam m'a poussé à creuser un peu et finalement je vais inclure le menu via un include php sur chaque page, ce qui fait que ce code ne sera que sur une seule page, elle même appelée dans toutes les autres.
Sachant ça, est-ce qu'une solution plus simple existe permettant au menu de rester déplié une fois la page appelée chargée. J'imagine que ça doit être dans ce cas plus simple à gérer que dans le cas où le code du menu est dupliqué de pages en page et par conséquent rechargé à chaque fois.
Merci aux bonnes volontés qui pourront m'éclairer.
|
|
lundi 18 janvier 2010 à 18:27:53 |
Re : Menu dépliant reste déplié

PetoleTeam
|
Bonjour,
J'ai commis une source,c'est ici, CREATION AUTOMATIQUE SOMMAIRE, qui utilise window.location.href qui est en fait l'URL de la page en cours.
Le principe est tout proche...
Il te suffit de récupérer cette info et lors de la création de ton menu tester si le lien à afficher correspond et si OUI mettre son parent, le DIV " menux" donc, en display ="block"
;O)
|
|
lundi 18 janvier 2010 à 23:37:02 |
Re : Menu dépliant reste déplié

thalijp
|
Salut,
merci pour ta réponse. En fait je ne vois pas du tout comment adapter ce code à mon cas.
Désolé.
|
|
mardi 19 janvier 2010 à 00:19:35 |
Re : Menu dépliant reste déplié

thalijp
|
Réponse acceptée !
En fait j'ai fini par trouver une solution qui fonctionne très bien et qui me permet de garder le menu installé.
Dans chaque page ciblée par les sous menus, j'ai défini deux variables:
Code PHP : <?php $nav_ouvert = 'rubrique0'; ?>
<?php $nav_en_cours = 'rubrique1'; ?>
la première pour définir la position du menu, qui doit rester déplié et la seconde pour définir la classe qui correspond au sous menu dans un état "actif".
Ensuite dans le code html du menu luis même, j'ai appliqué les changements correspondants:
Code HTML : <div class="menu" id="menu3" onclick="afficheMenu(this)">
<a href="#">type de médias</a>
</div>
<div <?php if ($nav_ouvert == 'rubrique0') {echo ' style="display:block"';} else {echo ' style="display:none"';} ?> id="sousmenu3">
<div class="sousmenu">
<a href="#">longs métrages</a>
</div>
<div <?php if ($nav_en_cours == 'rubrique1') {echo ' class="sousmenuON"';} else {echo ' class="sousmenu"';} ?>>
<a href="nevil_story_accueilB.php">publicités télévisées</a>
</div>
<div <?php if ($nav_en_cours == 'rubrique2') {echo ' class="sousmenuON"';} else {echo ' class="sousmenu"';} ?>>
<a href="nevil_story_accueilC.php">publicités internet</a>
</div>
</div>
Si la page qui contient à la fois les deux variables s'ouvre, les deux actions correspondantes au menus et sous menu choisis sont appliquées, menu ouvert et sous menu en position "actif".
Merci PetoleTeam pour tes réponses en tout cas.
|
|
samedi 17 avril 2010 à 17:00:27 |
Re : Menu dépliant reste déplié

djcoyotte
|
bonjour !
je suis dans le meme cas que toi et j'avoue je n'est pas bien compris comment tu as proceder...
Peut tu m'eclairer?
Merci d'avance !
|
|
Cette discussion est classée dans : menu, page, html, var, publicités
Répondre à ce message
Sujets en rapport avec ce message
Menu [ par vicovico ]
j'utilise une source de menu qui est sur ce site ( http://www.javascriptfr.com/article.aspx?Val=295 ) et j'ai besoin que lorsque je clique sur le menu
Menu sur HTML (newbie) [ par cyrilacide ]
salut,quelqu'un peut me dire comment faire une page d'acceuil avec un menu sur le coté gauche, mais lors de changement de page (clique sur un lien pre
je sais pas comment vous faite mais j'y arrive pas ! [ par frvfrvfrvfrv ]
je veux faire apparaitre une image selon une triple liste deroulante.l'image change selon la selection, et ceci avant d'activer le fichier html attach
je vous colle avec cette triple liste deroulante , hein ! [ par frvfrvfrvfrv ]
je veux faire apparaitre une image selon une triple liste deroulante.l'image change selon la selection, et ceci avant d'activer le fichier html attach
un pop up dans un fichier .js [ par fcweb ]
Bonjour, J'utilise Dreamweaver 4 Je viens de réaliser une page html avec un menu et j'ai transformé ce menu sur un fichier .js afin de l'utiliser dan
Script mot de passe sur la page index [ par webmcmaster ]
Bonjour,J'utilise actuellement le script ci-dessous qui à pour vocation de filtrer certaines pages html via un code utilisateur et un mode de passe. T
menu en cascade [ par oceane751 ]
bonjour à tous!! j'ai du code me permettant de creer un menu horizontal en cascade, mais j'ai un peu de mal en effet, pour certain element du menu
Ordre de chargement page WEB (html+javascript) ? [ par tlc77 ]
Bonjour à tous ! :-) Je suis en train de faire un site pour la société qui m'emploi en alternance cette année. J'ai appris le HTML ainsi que le PHP, p
menu dynamique [ par 21pc ]
Bonjour j'ai adapté un script pour un menu perso mais il ouvre un site avec chaque option. Est-il possible de le modifier pour ouvrir directement une
Radio HTML et JacvaScript [ par momosan77 ]
Bonjour, j'ai actuellement un petit problème je souhaite after un if qui retourner true si un radio html est cocher. Le probleme c'est que je n'arriva
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|