Aujourd'hui, nous allons apprendre à ajouter des «liens profonds» aux onglets de Bootstrap 4. Pour mieux comprendre nos objectifs, consultez la page de démonstration et faites attention à deux choses:
Nous allons décrire trois étapes principales; le HTML, le CSS et le JavaScript. Un certain niveau de compétence pour ces trois éléments est supposé. Heureux de voir comment nous allons construire cela? Si la réponse est oui, commençons!
Nous allons commencer les choses avec un modèle de démarrage tiré de la documentation de Bootstrap.
Comment ajouter une liaison profonde au composant Bootstrap 4 Tabs
Pour créer les onglets, nous allons utiliser un exemple de code pour le composant d'onglet fourni par Bootstrap:
Ensuite, nous spécifions quelques règles CSS pour notre composant. Rien d'extraordinaire, juste quelques styles de base. Il est à noter que dans un précédent tutoriel, nous avons utilisé des styles similaires pour créer un composant d'onglet personnalisé..
Voici les styles initiaux:
.nav-mytabs margin-top: 2rem; .nav-mytabs li: not (: last-child) margin-right: 7px; .nav-mytabs a position: relative; en haut: 4 px; rembourrage: 10px 25px; border-radius: 2px 2px 0 0; fond blanc; la couleur noire; opacité: 0,7; transition: toutes les 0,1s se calment; .nav-mytabs a.active, .nav-mytabs a: hover opacity: 1; en haut: 0; .mytab-content position: relative; z-index: 2; rembourrage: 25px; border-radius: 0 4px 4px 4px; fond blanc;
Avec le HTML et le CSS en place, il est temps d'examiner le code JavaScript requis (c'est le bit important).
Tout d'abord, lorsque le DOM est prêt, nous récupérons l'URL de la page et utilisons une expression régulière pour supprimer sa barre oblique finale. Par exemple, si l'URL d'origine est quelque chose/
, l'URL modifiée sera quelque chose
.
Ensuite, nous vérifions si l’URL contient un hachage. Si tel est le cas, cela signifie que nous voulons afficher le contenu du deuxième ou du troisième onglet (dans notre exemple). Pour ce faire, nous procédons comme suit:
languette
méthode.replaceState
méthode.Chaque fois que nous cliquons sur un onglet, nous procédons comme suit:
href
valeur d'attribut de cet onglet. Dans notre cas, les valeurs possibles sont #maison
, #l'histoire
, # ville-attractions
.replaceState
méthode.Voici le JavaScript qui s'occupe de tout ça:
$ (document) .ready (() => let url = location.href.replace (/ \ / $ /, ""); if (location.hash) const hash = url.split ("#"); $ ('#myTab a [href = "#' + hash [1] + '"]'). tab ("show"); url = location.href.replace (/ \ / # /, "#"); history.replaceState (null, null, url); setTimeout (() => $ (window) .scrollTop (0);, 400); $ ('a [data-toggle = "tab"] "). on ("click", function () let newUrl; const hash = $ (this) .attr ("href"); if (hash == "#home") newUrl = url.split ("#") [ 0]; else newUrl = url.split ("#") [0] + hash; newUrl + = "/"; history.replaceState (null, null, newUrl);););
La démo devrait bien fonctionner dans tous les navigateurs récents. Pour des raisons de simplicité, je n’ai pas utilisé de compilateur JavaScript (Babel, par exemple), mais vous devrez peut-être utiliser votre propre code..
Dans ce didacticiel, nous avons réussi à personnaliser le comportement des onglets Bootstrap 4 en attribuant à chaque onglet une URL identifiable, ce qui rend son contenu plus facile à naviguer et à partager. Gardez à l'esprit que le processus mis en œuvre ici peut également être appliqué à tout autre framework ou même à un composant d'onglet personnalisé..
S'il y a quelque chose que vous n'avez pas compris, ou si quelque chose vous semble incertain, faites-le-moi savoir dans les commentaires ci-dessous!