Barre de navigation fixe, dépliable et transparente
Explicite mon titre, non ? 😀
Voici un tutoriel une ressource qui va vous permettre de mettre en place une barre de navigation dépliable sur votre site / blog et qui sera fixée en bas de l'écran (en bas de l'écran oui, pas du site).
En fait, je reçoit très régulièrement des demandes d'informations sur la barre de navigation de mon ancien blog (pas compatible ie6). Apparemment le principe plait à beaucoup de monde, et j'ai souvent promis de faire un tutoriel à ce sujet, mais je n'avais pas encore eu le courage de m'y mettre.
Préface
Alors à l'époque de la mise en place de cette barre sur mon ancien blog, je débutais en javascript et du coup c'est un peu codé avec les pieds. De plus je m'étais basé sur la librairie Scriptaculous, qui est un peu lourde.
J'ai donc tout repris à zéro, et évidement je suis parti avec la librairie jQuery cette fois-ci ! Du coup le code est plus simple, moins lourd et compatible avec IE6 ! Evidement j'ai aussi pensé au cas des personnes qui naviguent sans javascript activé (ça existe encore ça ?) pour que ça reste accessible. Sans javascript, la barre de navigation ira se placer tout en bas de la page, sans gêner personne 🙂
Il vaut mieux être initié au CSS et au formatage HTML pour pouvoir utiliser au mieux cette ressource !
Compatibilité
- Windows
- IE6, IE7, Opera 9+, Firefox 2 et Flock
IE5.5 et inférieur
- MacOs
- Firefox 2, Safari 3, Camino 1.5.5, Shiira 2 et Opéra 9
Safari 1.3.2(Onglet "Full" inactif)
- Linux
- Firefox
Exemples
Voici la page de démonstration, et vous pouvez aussi voir un exemple sur mon ancien blog (même si c'est moins poussé)
Donc il s'agit d'une barre à 3 positions.
- Close: la barre est completement cachée (juste les onglets sont visible)
- Light: affiche la div supérieure de la barre
- Full: affiche l'ensemble de la barre
Et évidement il y a une mémorisation (via un cookie) de la position, histoire de retrouver la barre dans la même position de page en page.
Téléchargement et installation
- Fichiers nécessaire à la mise en place de la barre de navigation (Obligatoire)
- Fichiers de la page de démonstration (Facultatif)
- 1. On inclut les fichiers fraichement téléchargés entre les balises HTML
<head>
et</head>
<!--[if IE 6]>
<link rel="stylesheet" href="wbarrefixe-ie6.css" type="text/css" media="screen" />
<![endif]-->
<script src="jquery.js" type="text/javascript"></script>
<script src="jquery.cookie.js" type="text/javascript"></script>
<script src="wbarrefixe.packed.js" type="text/javascript"></script>
Evidement si vous utilisé déjà jquery, supprimez sa ligne d'intégration.
- 2. On inclut ce bout de code html juste avant la balise de fermeture
</body>
<div id="magicmenu"><ul>
<li><a href="#" class="magic1">Close</a></li>
<li><a href="#" class="magic2">Full</a></li>
<li><a href="#" class="magic3">Light</a></li>
</ul></div>
<div id="magiccontent">
<div id="magicmini">Bandeau mini: <a href="#">Revenir en haut de page</a></div>
<div id="magicmaxi">Bandeau maxi <br /> Blabla<br />Re Blabla</div>
</div>
</div>
Vous pouvez évidement changer le contenu des div "magicmini" et "magicmaxi", mais ne changez pas les classes et les id !
La div "magicmenu" contient les onglets de navigation. La div "magiccontent" contient les deux div correspondantes à "Full" et "light" (magicmini)
Voilà c'est tout, après à vous de jouer avec les fichier .css pour y caser tout ce que vous voulez.
Conclusions
La source n'est pas forcement des plus simple à personnaliser (CSS, exceptions due à IE6, style par javascript), mais la structure XHTML est clarifiez au maximum. Comme d'habitude, évitez de mettre du contenu qui est indispensable à votre site, car même si la barre de navigation reste visible est accessible sans javascript, elle sera visible que tout en bas de vos pages.
Et si des personnes sous Mac et linux passent dans le coin, un petit feedback ne serais pas de refus car j'ai des doutes sur le fonctionnement universel de cette ressource ^^
Wouah, ça m'a donné faim tout ça, allez bon app 😉
-----
Pingback: Une barre de navigation déroulante et transparente en JS | Flux de la passion()