I dag lærer vi hvordan du legger til "dyp kobling" til Bootstrap 4-fanene. For bedre å forstå hva vi jobber med, sjekk demo siden og ta hensyn til to ting:
Vi skisserer tre hovedtrinn; HTML, CSS og JavaScript. En viss grad av kompetanse for alle tre av disse antas. Er du glad for å se hvordan vi skal bygge dette? Hvis svaret er ja, la oss komme i gang!
Vi slår ting av med en startmaler hentet fra Bootstraps dokumentasjon.
Slik legger du til dypkobling til kategorien Bootstrap 4 Tabs
Hvis du vil opprette fanene, vil vi dra nytte av eksempelkoden for fanekomponenten som Bootstrap tilbyr:
Deretter angir vi noen CSS-regler for vår komponent. Ingenting for fancy, bare noen grunnleggende stiler. Det er verdt å nevne at i en tidligere opplæring brukte vi lignende stiler til å bygge en egendefinert fanekomponent.
Her er de første stilene:
.nav-mytabs margin-top: 2rem; .nav-mytabs li: ikke (: siste barn) margin-right: 7px; .nav-mytabs a posisjon: relative; topp: 4px; polstring: 10px 25px; border-radius: 2px 2px 0 0; bakgrunn: hvit; farge svart; opasitet: 0,7; overgang: alle 0.1 s brukervennlige .nav-mytabs a.active, .nav-mytabs a: svever opacity: 1; topp: 0; .mytab-innhold posisjon: relativ; z-indeks: 2; polstring: 25px; grense-radius: 0 4px 4px 4px; bakgrunn: hvit;
Med HTML og CSS på plass, er det på tide å se på den nødvendige JavaScript-koden (dette er den viktige biten).
Først når DOM er klar, henter vi nettadressen til siden og bruker et vanlig uttrykk for å fjerne det etterfølgende slash. For eksempel, hvis den opprinnelige nettadressen er noe/
, Den endrede nettadressen vil være noe
.
Deretter sjekker vi for å se om nettadressen inneholder en hash. Hvis det er tilfellet, betyr det at vi vil vise innholdet i den andre eller tredje kategorien (i vårt eksempel). For å gjøre det, utfører vi følgende:
tab
metode.replaceState
metode.Hver gang vi klikker på en fane, gjør vi følgende:
href
Tilordne verdien av denne kategorien. I vårt tilfelle er de mulige verdiene #hjem
, #historie
, # City-attraksjoner
.replaceState
metode.Her er JavaScript som tar seg av alt det:
$ (dokument) .ready (() => la url = location.href.replace (/ \ / $ /, ""), hvis (location.hash) const hash = url.split ("#"); $ ('# myTab a [href = "#' + hash [1] + '"]') .fanen ("show"); url = location.href.replace (/ \ / # /, "#"); history.replaceState (null, null, url); setTimeout (() => $ (vindu) .scrollTop (0);, 400); $ ('a [data-toggle = "tab"]'). på ("klikk", funksjon () la newUrl; const hash = $ (dette) .attr ("href"); hvis (hash == "#home") newUrl = url.split ("#") [ 0; else newUrl = url.split ("#") [0] + hash; newUrl + = "/"; history.replaceState (null, null, newUrl);););
Demoen skal fungere godt i alle nyere nettlesere. For enkelhet har jeg ikke brukt en JavaScript-kompilator (for eksempel Babel), men i din egen kode må du kanskje.
I denne opplæringen klarte vi å tilpasse oppførselen til Bootstrap 4-fanene, ved å gi hver kategori en identifiserbar nettadresse, noe som gjør innholdet mer navigasjonelt og delbart. Husk at prosessen som implementeres her, også kan brukes på andre rammer eller til og med en tilpasset fanekomponent.
Hvis det er noe du ikke forstod, eller noe som virker uklart for deg, gi meg beskjed i kommentarene nedenfor!