Voir aussi
Dans la même rubrique :
Javascript : n’oubliez pas Mac OS !
Positionnement fixe... même avec Internet Explorer !
Quand JavaScript est désactivé... 2/2
Conseils pour débuter un site web
Quand JavaScript est désactivé... 1/2
Contrôler l’accès d’une partie du site avec .htaccess
Proposer plusieurs styles pour votre site
Réaliser un formulaire de contact (5/4)
Réaliser un formulaire de contact (4/4)
Réaliser un formulaire de contact (3/4)
Réaliser un formulaire de contact (2/4)
Réaliser un formulaire de contact (1/4)
Belles icônes pas chères !
Comment faire migrer son site ?
La trousse du webmasterDu même auteur :
Suivi de vos articles
Exécuter un Javascript dans une page SPIP
Reprendre un document Word
Les Centres de santé
Quiz en PHP 1/3
Quiz en PHP 2/3
Quiz en PHP 3/3
Comité Départemental d’Education pour la Santé des Yvelines
Les sites des Médecins Maîtres-Toile
Joindre un document à un article
Placer une image dans un article
Les raccourcis typographiques
Ecrire ou modifier un article
Présentation de l’espace rédacteurs
Conseils aux rédacteurs
Lire nos fichiers de syndication
Page contact en PHP 3/3
Syndication, comment s’y retrouver
Afficher plusieurs flux RSS/Atom sur une page
Lecture des caractères spéciaux et d’éléments d’un fil RSS/Atom
Accueil du nouveau rédacteur
Installer un script PHP pour les nuls
Page contact en PHP 1/3
Page contact en PHP 2/3
Des fils RSS 1.0, RSS 2.0 et Atom 1.0 pour votre site SPIP
Editez vos flux avec Fil_LE 1/2
Editez vos flux avec Fil_LE 2/2
Editer plusieurs fichiers de syndication 1/3
Editer plusieurs fichiers de syndication 2/3
Editer plusieurs fichiers de syndication 3/3
Documentation sur SPIP
Abandonnons RSS 0.91 !
La syndication de contenu RSS
Ecrire ce qu’on veut dans SPIP
Utiliser les smileys
Joindre un logo à un article
Référencer un site
Création à distance d’un fichier de syndication
Lecteur RSS/Atom pour votre site 1/2
Lecteur RSS/Atom pour votre site 2/2
Afficher un fil RSS/Atom sur votre site 1/3
Afficher un fil RSS/Atom sur votre site 2/3
Afficher un fil RSS/Atom sur votre site 3/3
Un Editeur RSS pour votre site 1/2
Un Editeur RSS pour votre site 2/2
Un lecteur RSS pour votre site 1/2
Un lecteur RSS pour votre site 2/2
Menu dépliant pour les rubriques
Menu de navigation sans JavaScript
Astuce pour les images fréquemment utilisées
Gestion d’une rubrique... en attendant SPIP
Page Erreur 404 en PHP
Utilisation de la classe easyRSSMême indexation :
Technique Web
Réaliser un formulaire de contact (3/4)
Un lecteur RSS pour votre site 1/2
Page contact en PHP 1/3
Utilisation de la classe easyRSS
Tri et Histogramme
Le web structuré et sa présentation
Quiz en PHP 2/3
Page contact en PHP 3/3
Mise en place d’un forum : une décision qui doit être mûrement réfléchie
Créer un forum à l’aide de phpBB
Quand JavaScript est désactivé... 2/2
Belles icônes pas chères !
Positionnement fixe... même avec Internet Explorer !
Editer plusieurs fichiers de syndication 2/3
Réaliser un formulaire de contact (1/4)
Quiz en PHP 1/3
Syndication, comment s’y retrouver
Proposer plusieurs styles pour votre site
Conseils pour débuter un site web
Initiation au xhtml - 3 : Rappel sur les pointeurs internet (URI/URL)
Créer une liste de QCM
Initiation au xhtml - 1
Initiation au xhtml - 2
Editer plusieurs fichiers de syndication 3/3
MARST - Le Moteur Automatisé de Recherche en Santé au Travail
Analyser les réponses à une liste de questions
xhtml - 4 : Les entités
Réaliser un formulaire de contact (5/4)
Installer un script PHP pour les nuls
Javascript : n’oubliez pas Mac OS !
Quiz en PHP 3/3
La Netiquette des forums
Soigner en ligne, un art impossible ?
Gestion d’une rubrique... en attendant SPIP
Réaliser un formulaire de contact (4/4)
Publication Spip : forme et typographie
Un serveur dédié pour les nuls
Quand JavaScript est désactivé... 1/2
Un Editeur RSS pour votre site 1/2
Réaliser un formulaire de contact (2/4)
Etablir un questionnaire statistique en ligne
Contrôler l’accès d’une partie du site avec .htaccess
Page contact en PHP 2/3
Un Editeur RSS pour votre site 2/2
Menu de navigation sans JavaScript
Editer plusieurs fichiers de syndication 1/3
Page Erreur 404 en PHP
Qualité, centres d’intérêt et motivations des participants aux forums médicaux.
Un lecteur RSS pour votre site 2/2
Comment faire migrer son site ?
La syndication de contenu RSS
Ecrire ce qu’on veut dans SPIP
Lire nos fichiers de syndication
Afficher un fil RSS/Atom sur votre site 1/3
Astuce pour les images fréquemment utilisées
Afficher un fil RSS/Atom sur votre site 2/3
Afficher un fil RSS/Atom sur votre site 3/3
Lecteur RSS/Atom pour votre site 1/2
Lecteur RSS/Atom pour votre site 2/2
Lecture des caractères spéciaux et d’éléments d’un fil RSS/Atom
Syndication pour phpBB
Editez vos flux avec Fil_LE 1/2
Editez vos flux avec Fil_LE 2/2
Création à distance d’un fichier de syndication
Abandonnons RSS 0.91 !
Exécuter un Javascript dans une page SPIP
Des fils RSS 1.0, RSS 2.0 et Atom 1.0 pour votre site SPIPSyndiquer tout le texte
Menu de navigation sans JavaScript
Page contact en PHP 3/3
Page contact en PHP 1/3
Quiz en PHP 3/3
Installer un script PHP pour les nuls
Page Erreur 404 en PHP
Editer plusieurs fichiers de syndication 3/3
Javascript : n’oubliez pas Mac OS !
Positionnement fixe... même avec Internet Explorer !
Syndication, comment s’y retrouver
Quiz en PHP 1/3
Quiz en PHP 2/3
Proposer plusieurs styles pour votre site
Quand JavaScript est désactivé... 2/2
Quand JavaScript est désactivé... 1/2
Page contact en PHP 2/3
Editer plusieurs fichiers de syndication 2/3
Editer plusieurs fichiers de syndication 1/3
Gestion d’une rubrique... en attendant SPIP
Afficher plusieurs flux RSS/Atom sur une page
Conseils aux rédacteurs
La syndication de contenu RSS
Présentation de l’espace rédacteurs
Ecrire ce qu’on veut dans SPIP
Lire nos fichiers de syndication
Astuce pour les images fréquemment utilisées
Afficher un fil RSS/Atom sur votre site 1/3
Ecrire ou modifier un article
Les raccourcis typographiques
Afficher un fil RSS/Atom sur votre site 2/3
Afficher un fil RSS/Atom sur votre site 3/3
Reprendre un document Word
Lecteur RSS/Atom pour votre site 1/2
Lecteur RSS/Atom pour votre site 2/2
Lecture des caractères spéciaux et d’éléments d’un fil RSS/Atom
Placer une image dans un article
Joindre un document à un article
Editez vos flux avec Fil_LE 1/2
Editez vos flux avec Fil_LE 2/2
Joindre un logo à un article
Création à distance d’un fichier de syndication
Exécuter un Javascript dans une page SPIP
Abandonnons RSS 0.91 !
Des fils RSS 1.0, RSS 2.0 et Atom 1.0 pour votre site SPIP
Accueil
Boite à Outils
Menu dépliant pour les rubriques
Il peut être utile de masquer certaines parties d’une page, notamment lorsque l’on présente des rubriques, toutes n’ont pas besoin d’être visibles quand on consulte la page, surtout quand on a un petit écran !
Cet article propose un JavaScript permettant de cacher ou de rendre visible un calque. Il est compatible avec une désactivation de JavaScript : dans ce cas, le calque reste visible, contrairement à beaucoup de scripts où le calque est caché par défaut.
Voici le code à mettre dans le <head> des pages [1] :
La fonction qui fait le changement visible/invisible est swap_couche(couche), elle est inspirée d’articles de SpipAge [2] et a besoin pour fonctionner des autres fonctions MM_findObj(n, d) MM_swapImage() et MM_showHideLayers() [3].
Voici un exemple pour le calque d’une rubrique d’aide :
<div onclick="javascript:swap_couche('Aide')"><img name='triangleAide' src='/images/vide9.gif' border="0" alt="Déplier/Replier" /> Aide :</div><script language='JavaScript' type="text/javascript"> |
On peut avoir autant de calques à masquer qu’on le siouhaite dans sa page, chacun pourra être masqué ou affiché indépendamment des autres. Il faut simplement veiller à remplacer Aide par un autre nom pour que cela marche. Voici un deuxième exemple pour bien comprendre le changement de nom, pour le calque d’une rubrique Documentation :
<div onclick="javascript:swap_couche('Doc')"><img name='triangleDoc' src='/images/vide9.gif' border="0" alt="Déplier/Replier" /> Aide :</div><script language='JavaScript' type="text/javascript"> |
Dans ces exemples, c’est un clic sur le calque (onclick=) qui rend celui-ci visible ou invisible, mais on peut remplacer par un autre évènement, double clic ondblclick= ou survol onmouseover=.
La particularité de ce script est d’utiliser une image transparente vide9.gif avant le titre de la rubrique. Ainsi, on ne voit rien... tant que le script n’est pas en action. Elle est remplacée par
ou
si JavaScipt est activé, selon que la rubrique est visible ou masquée. Ceux qui ont désactivé JavaScript ne voient pas ces images qui correspondent au script en action, et ils peuvent voir le menu qui est déplié.
Le script est activé au chargement de la page en remplaçant la balise <body> par <body onload="swap_couche('Aide');">. Si on utilise le script pour plusieurs menus, il faut que chacun soit activé : <body onload="swap_couche('Aide');swap_couche('Doc');"> [4].
Ainsi, au chargement de la page le menus sont dépliés. Si on veut au contraire que le menu soit replié, il suffit de le charger une deuxième fois pour le rendre invisible :
<body onload="swap_couche('Aide');swap_couche('Aide');"> |
Voici sur le site du CYES un exemple de l’utilisation de ce script pour l’affichage des rubriques dans la colonne gauche des pages :
![]() |
![]() |
[1] Ou dans une feuille de style externe appellée par le code suivant mis dans le <head> :
<script language="JavaScript" type="text/javascript" src="/script.js"></script>
[2] Voir les articles Menu dépliant 1, 2 et 3.
[3] Ces fonctions sont reprises du code JavaScript proposé par Dreamweaver.
[4] Voici une actuce pour ceux qui utilisent des modèles pour leurs pages (personnellement j’utilisent des modèles créés par Dreamweaver), car il n’est alors pas facile de modifier <body onload="...;"> pour chaque page :
pour la balise <body>, j’écris dans le modèle <body onload="cacher_voir();">,
dans le head de chaque page, dans le champ <!-- #BeginEditable "doctitle" --> après le title, j’écris :
<script language="JavaScript" type="text/javascript"> |
il suffit de rajouter la fonction swap_couche() pour chaque calque utilisé dans la page.

Bonjour, c’est exactement ce que je cherchais, un truc qui ressemeble à ce qu’on voit dans l’interface privée de spip. Merci.
Donc, tout marche... SAUF (car il fallait bien un sauf) l’affichage des images. Je n’ai droit qu’à la vide9.gif que le calque soit plié ou déplié, ce qui n’est pas très intuitif pour l’internaute sauf à lui préciser par écrit qu’il doit cliquer.
Auriez-vous une idée de ce qui peut se passer ?
Merci d’avance
Script parfait ! Mais j’ai également un problème d’affichage des images, une idée ?
Bravo et merci pour votre script. Une petite question : j’aimerais l’utiliser pour afficher une image sur la page d’accueil, image qu’on peut faire disparaître ensuite en cliquant / et réapparaître.
Est-il possible, selon vous, que la première fois qu’on arrive sur la page, l’image soit visible (=dépliée), et que si on va sur une autre page du site et qu’on revient à l’accueil, cette fois l’image ne soit plus visible (=repliée) ?
J’imagine que c’est possible avec des cookies, mais sinon ?
Une information peut être transmise dans une variable par un formulaire (post ou get), une session ou un cookie. Dans le cas présent, le cookie me parait être le plus simple.
Si vous voulez que l’image de la page d’accueil ne soit visible que la première fois que cette page est chargée dans une journée, il suffit d’un cookie, créé au chargement de cette page pour une durée de 24h : avant de déplier l’image, le script vérifie l’absence de cookie, si le cookie existe, l’image reste cachée.
Evidemment, pour que cela marche, il faut que le visiteur accepte les cookies, sinon l’image sera toujours visible.
Bon alors merci, j’utilise un système de cookie, et ça marche presque parfaitement. J’ai juste un tout petit souci.
Par défaut, je veux que l’image soit cachée : donc j’utilise votre astuce avec deux fois l’appel du script via body onload.
Ensuite s’il n’y a pas de cookie (ie la personne n’est pas venue depuis moins de 12 heures), j’appelle l’image avec un onload.
Voici le code pour le cookie :
<script language="JavaScript">
// On place la donnée du cookie dans une variable
var deja = lire_cookie("bibliopopjour");
// Si elle n'existe pas (le cookie est absent ou expiré)
if (deja == null) {
// On ouvre l'image
onload="swap_couche('Aide');"
// Et on place le cookie
enregistrer(1);
}
// Sinon (le cookie est valable), on ne fait rien
</script>
et enfin j’ai votre code, que j’ai un peu adapté :
<div onclick="javascript:swap_couche('Aide')"><img name='triangleAide' src='pix.gif' border="0" alt="Déplier/Replier" /><span class="txtart"> Cliquez ici pour afficher/cacher la une</div><script language='JavaScript' type="text/javascript">
<!--
vis['Aide'] = 'hide';
//-->
</script><div id='LayerAide' onclick="javascript:swap_couche('Aide')">
<span class="titregrand">En kiosques cette semaine:</span>
<br><img src="img/une_grande.jpg" border="1" alt="Le Tigre, hebdomadaire curieux">
</div>
Le problème que j’ai, c’est que, par défaut (ie première visite), il n’y a pas le petit [-], mais juste l’image vide (chez moi : pix.gif). Il faut cliquer une première fois sur l’image pour faire apparaître le [-] et c’est lors du 2° clic seulement que l’image se cache.
Auriez-vous une idée de ce qui provoque ça ? J’imagine que c’est l’appel via le onload dans le script du cookie, mais ?
Merci beaucoup.