Dans notre second article sur les fonctionnalités avancées du Framework CSS Bootstrap, nous allons étudier les onglets ou Bootstrap Tabs. Nous ajoutons de plus en plus de fonctionnalités à notre produit phare et nous ne souhaitons pas rallonger la page indéfiniment, ni créer de nouvelles pages. Bootstrap 3 Tab est l’une des solutions que nous envisageons.
C’est quoi Bootstrap 3 tab
Les onglets offrent un système de navigation simple mais tout aussi puissant pour améliorer l’expérience utilisateur. Grâce aux onglets, un développeur web peut ranger un contenu assez long dans un espace restreint organisé en panneaux ; un panneau est visible à la fois et occupera tout l’espace disponible un peu comme si on visualisait seulement un paragraphe d’un article de journal à la fois. L’utilisateur peut accéder au contenant adjacent en cliquant sur les onglets sans quitter la page web courante.
Création d’onglets dynamiques sans Javascript
Dans ce premier exemple, nous allons créer les onglets en utilisant encore une fois les data-*attributs.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<div class="bs-3-tab-example"> <ul class="nav nav-tabs"> <li class="active"><a data-toggle="tab" href="#sectionA">Onglet A</a></li> <li><a data-toggle="tab" href="#sectionB">Onglet B</a></li> <li class="dropdown"> <a data-toggle="dropdown" class="dropdown-toggle" href="#">Dropdown <b class="caret"></b></a> <ul class="dropdown-menu"> <li><a data-toggle="tab" href="#dropdown1">Dropdown1</a></li> <li><a data-toggle="tab" href="#dropdown2">Dropdown2</a></li> </ul> </li> </ul> <div class="tab-content"> <div id="sectionA" class="tab-pane fade in active"> <h3>Section A</h3> <p>Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui. Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth.</p> </div> <div id="sectionB" class="tab-pane fade"> <h3>Section B</h3> <p>Vestibulum nec erat eu nulla rhoncus fringilla ut non neque. Vivamus nibh urna, ornare id gravida ut, mollis a magna. Aliquam porttitor condimentum nisi, eu viverra ipsum porta ut. Nam hendrerit bibendum turpis, sed molestie mi fermentum id. Aenean volutpat velit sem. Sed consequat ante in rutrum convallis. Nunc facilisis leo at faucibus adipiscing.</p> </div> <div id="dropdown1" class="tab-pane fade"> <h3>Dropdown 1</h3> <p>WInteger convallis, nulla in sollicitudin placerat, ligula enim auctor lectus, in mollis diam dolor at lorem. Sed bibendum nibh sit amet dictum feugiat. Vivamus arcu sem, cursus a feugiat ut, iaculis at erat. Donec vehicula at ligula vitae venenatis. Sed nunc nulla, vehicula non porttitor in, pharetra et dolor. Fusce nec velit velit. Pellentesque consectetur eros.</p> </div> <div id="dropdown2" class="tab-pane fade"> <h3>Dropdown 2</h3> <p>Donec vel placerat quam, ut euismod risus. Sed a mi suscipit, elementum sem a, hendrerit velit. Donec at erat magna. Sed dignissim orci nec eleifend egestas. Donec eget mi consequat massa vestibulum laoreet. Mauris et ultrices nulla, malesuada volutpat ante. Fusce ut orci lorem. Donec molestie libero in tempus imperdiet. Cum sociis natoque penatibus et magnis.</p> </div> </div> </div> |
Explication
La page comporte plusieurs sections. Une liste dont les classes associées sont .nav et .nav-tabs. Chaque élément de cette liste contient un élément HTML a (anchor) disposant d’un attribut data-toggle = tab.
Puis nous avons créé une autre section qui est une div dont la classe est .tab-content.
Chaque lien de la liste précédente a une propriété href qui est l’identifiant de chaque panneau .tab-pane.
Création d’onglets dynamiques avec Javascript
Reprenons l’exemple précédent. Cette fois ci nous supprimons les liens HTML a et les attributs data-toggle. Rien ne change pour la section suivante avec les panneaux.
On active alors les onglets en ajoutant le code JavaScript suivant au chargement de la page.
[Code] :
1 2 3 4 5 6 7 8 |
<script type="text/javascript"> $(document).ready(function(){ $("#myTab a").click(function(e){ e.preventDefault(); $(this).tab('show'); }); }); </script> |
Pour aller plus loin.
Ce composant est assez flexible. On peut activer individuellement les onglets et on peut choisir celui qui va s’afficher en premier. Ce n’est pas nécessairement le premier onglet de la gauche vers la droite.
1 2 3 4 5 |
<script type="text/javascript"> $(document).ready(function(){ $("#myTab li:eq(1) a").tab('show'); }); </script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<div class="bs3-tabs-example"> <ul class="nav nav-tabs" id="myTab"> <li><a data-toggle="tab" href="#sectionA">Section A</a></li> <li><a data-toggle="tab" href="#sectionB">Section B</a></li> <li class="dropdown"> <a data-toggle="dropdown" class="dropdown-toggle" href="#">Dropdown <b class="caret"></b></a> <ul class="dropdown-menu"> <li><a data-toggle="tab" href="#dropdown1">Dropdown1</a></li> <li><a data-toggle="tab" href="#dropdown2">Dropdown2</a></li> </ul> </li> </ul> <div class="tab-content"> <div id="sectionA" class="tab-pane fade in active"> <h3>Section A</h3> <p>Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui. Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth.</p> </div> <div id="sectionB" class="tab-pane fade"> <h3>Section B</h3> <p>Vestibulum nec erat eu nulla rhoncus fringilla ut non neque. Vivamus nibh urna, ornare id gravida ut, mollis a magna. Aliquam porttitor condimentum nisi, eu viverra ipsum porta ut. Nam hendrerit bibendum turpis, sed molestie mi fermentum id. Aenean volutpat velit sem. Sed consequat ante in rutrum convallis. Nunc facilisis leo at faucibus adipiscing.</p> </div> <div id="dropdown1" class="tab-pane fade"> <h3>Dropdown 1</h3> <p>WInteger convallis, nulla in sollicitudin placerat, ligula enim auctor lectus, in mollis diam dolor at lorem. Sed bibendum nibh sit amet dictum feugiat. Vivamus arcu sem, cursus a feugiat ut, iaculis at erat. Donec vehicula at ligula vitae venenatis. Sed nunc nulla, vehicula non porttitor in, pharetra et dolor. Fusce nec velit velit. Pellentesque consectetur eros.</p> </div> <div id="dropdown2" class="tab-pane fade"> <h3>Dropdown 2</h3> <p>Donec vel placerat quam, ut euismod risus. Sed a mi suscipit, elementum sem a, hendrerit velit. Donec at erat magna. Sed dignissim orci nec eleifend egestas. Donec eget mi consequat massa vestibulum laoreet. Mauris et ultrices nulla, malesuada volutpat ante. Fusce ut orci lorem. Donec molestie libero in tempus imperdiet. Cum sociis natoque penatibus et magnis dis parturient.</p> </div> </div> |
Evènements.
Pour en savoir plus sur les évènements associés à Bootstrap 3 tab, veuillez consulter la documentation officielle à l’adresse
http://getbootstrap.com/javascript/#tabs-events
Conclusion.
Dans ce tutoriel, vous avez appris à utiliser Bootstrap tab. On retrouve souvent les onglets sur des pages qui regroupent des données hétérogènes comme par exemple une page de commande à laquelle sont associées des lignes de produits, un client, une adresse de livraison, une adresse de facturation, etc. On peut aussi citer les pages de configuration générale d’applications web, etc.