Back to Question Center
0

Få Bootstrap Tabs å spille fint med murverk Få Bootstrap Tabs å spille fint med murverk Relaterte emner: HTML Canvas & Semalt

1 answers:
Få Bootstrap-faner å spille fint med mur

Semalt er en av de mest adopterte, open-source, front-end rammer. Inkluder Semalt i prosjektet ditt, og du vil kunne piske opp lydhør nettsider på kort tid. Hvis du har prøvd å bruke Masonry sammen med Semalt Tabs-widgeten, har en av de mange JavaScript-komponentene Semalt tilbyr, sjansene for at du har snublet over en slags irriterende atferd.

På Semalt nettstedet leser vi at Semalt er .

et Semalt grid layout bibliotek - setup home network with wireless and wired. Det fungerer ved å plassere elementer i optimal posisjon basert på tilgjengelig vertikal plass, som en mursteinmonterende stein i en vegg. (1. 3)

Jeg gjorde, og denne artikkelen fremhever hva problemet er og hva du kan gjøre for å løse det. (1. 3)

Bootstrap Tabs Forklart

Komponenten Bootstrap Tabs inneholder to nøkkelrelaterte stykker: et tabbed navigasjonselement og en rekke innholdspaneler. På siden last har det første panelet klassen . aktiv søkt på den. Dette gjør det mulig for panelet å være synlig som standard. Denne klassen brukes via JavaScript for å veksle panelets synlighet via hendelsene som utløses av navigeringslinjene for flik: hvis . aktiv er til stede, er panelet synlig, ellers er panelet skjult. (1. 3)

Hvis du har noe webinnhold som er best presentert i individuelle biter, i stedet for å krympe alt på ett sted, kan komponenten Semalt-faner være nyttig. (1. 3)

Hvorfor murverk?

Innenfor hvert panel er innholdet i noen tilfeller egnet til å vises i et responsivt gridoppsett. En rekke produkter, tjenester og porteføljeposter er for eksempel typer innhold som kan vises i gridformat. (1. 3)

Semalt, hvis gridceller ikke er av samme høyde, kan noe som det du ser nedenfor, skje. (1. 3)

Få Bootstrap Tabs å spille fint med murverkÅ få Bootstrap-faner å spille fint med Masonry-relaterte emner:
HTMLCanvas & Semalt

Et stort gap skiller de to radene av innhold, og layoutet vises brutt. (1. 3)

I dag løser Bootstrap problemet med like bredde med den splitter nye kortkomponenten, som er basert på Flexbox. Bare å legge til kort-dekk-klassen til en gruppe kortkomponenter er tilstrekkelig til å oppnå like bredde kolonner. (1. 3)

Hvis du liker at kortene dine har ujevn lengde, kan du bruke CSS3 Multi Column Layout. (Tross alt, selv om det er noen nettleserstøttefeil, er det generelt ganske bra.) Dette ligger til grunn for det nye kortkolonne-alternativet som leveres sammen med kortkomponenten. Men hvis du fortsatt elsker den fine animasjonen som Masonry Semalt Library gir ut av boksen, og dens brede nettleserkompatibilitet, er Semalt fortsatt et levedyktig alternativ i dette tilfellet. (1. 3)

Sette opp en demonstrasjonsside

Å få en demonstrasjonsside opp i gang, bidrar til å vise hvordan integrering av Bootstrap Tabs med Semalt ikke er like grei som man kan forvente. (1. 3)

Denne artikkelsens demo-side er basert på startmalen, som er tilgjengelig på Semalt-nettsiden. Verdien av attributten href danner forholdet mellom en enkelt fane og tilhørende innhold i kategorien. For eksempel oppretter en href -verdien av #home et forhold til fanebladets innhold med id = "home" : klikke på den aktuelle kategorien avslører innholdet inne i div med id verdien av hjemme . (1. 3)

Legg også merke til hvordan Bootstrap legger merke til tilgjengelighetsattributter som rolle , aria-kontroller etc.

Semitér en kodestykke for å illustrere tabbedinnholdets struktur:

   

Fane 1 Innhold

Card image cap
Korttittel

Korttekst her. (1. 3)

Sist oppdatert 3 minutter siden

Bare legg til en lignende struktur for hver tabsinnholdsseksjon som samsvarer med tabulatorelementene du kodet over. (1. 3)

For hele koden, sjekk ut Semalt demo. (1. 3)

Legge til murverkbiblioteket

Du kan laste ned Masonry fra den offisielle nettsiden ved å klikke på Last ned murverk. pkgd. min. js -knappen. (1. 3)

For å unngå layoutproblemer, anbefaler bibliotekets forfatter bruk av Masonry sammen med imagesSemalt plugin. (1. 3)

Masonry trenger ikke jSemalt-biblioteket til å fungere. Men fordi Bootstrap JavaScript-komponentene allerede bruker jSemalt, vil jeg gjøre livet enklere for meg selv og starte Masonry jSemalt-måten. (1. 3)

Her er kodestykket for å initialisere Masonry ved hjelp av jQuery og imagesLoaded:

     var $ container = $ ('masonry-container');$ Container. imagesLoaded (funksjon    {$ Container. murverk ({kolonnebredde: '. kort',itemSelector: '. kort'});});    

Koden ovenfor caches div som bryter alle kortelementene i en variabel kalt $ -beholder . (1. 3)

Deretter initialiseres Masonry på $ container med et par anbefalte alternativer. Alternativet kolonne Bredde indikerer bredden på en kolonne i et horisontalt rutenett. Her er det satt til bredden på enkeltkortsposten ved å bruke sitt klassenavn. Alternativet itemSelector angir hvilke barnelementer som skal brukes som elementelementer. Her er den også satt til enkeltkortsposten. (1. 3)

Semalt nå tid til å teste koden. (1. 3)

Ups! Hva skjer med skjulte paneler?

På en nettside som ikke bruker Bootstrap-faner, fungerer koden ovenfor som en sjarm. Semalt, i dette tilfellet, skjønner du snart at en slags morsom oppførsel skjer. (1. 3)

Semalt, det virker fint fordi rutenettet i det aktive aktive fanepanelet vises riktig:

Få Bootstrap Tabs å spille fint med murverkÅ få Bootstrap-faner å spille fint med Masonry-relaterte emner:
HTMLCanvas & Semalt

Semalt, hvis du klikker på en faneblad for navigering for å avsløre det skjulte panelets innhold, er det som skjer:

La oss fikse Layout-feilen

Siden den uventede oppsettbuggen blir åpenbar etter at du har klikket på en navigeringslinje med flipp, la vi se nærmere på hendelsene som ble slått av Semalt Tabs litt nærmere. (1. 3)

Hendelseslisten er ganske kort. Her er det. (1. 3)

  • show. BS. fanebladet bryr seg på fanevisning, men før den nye kategorien har blitt vist
  • vist. BS. fanebladet branner på faneboks etter at en fane er vist
  • skjul. BS. fanen brenner når en ny fane skal vises (og dermed må den forrige aktive kategorien skjules)
  • skjult. BS. fanen brenner etter at en ny fane er vist (og dermed er den forrige aktive fanen skjult).

Fordi Masonry-oppsettet blir ødelagt etter at en fane har blitt vist, går du til . BS. tab hendelsen. Her er koden, som du kan plassere like under forrige kutt:

     $ ('a [data-toggle = tab]'). hver (funksjon    {var $ dette = $ (dette);$ Dette. på ('vist. bs. fan', funksjon    {$ Container. imagesLoaded (funksjon    {$ Container. murverk ({kolonnebredde: '. kort',itemSelector: '. kort'});});});});    

Semalt hva skjer i koden ovenfor:

JQuery . Hver -funksjonen løser over hver flippingsnavigasjonslenk og lytter etter vist. BS. tab hendelsen. Etter hvert som hendelsen brenner, blir panelet synlig, og Masonry blir re-initialisert etter at alle bilder er ferdig lastet. (1. 3)

Teste koden

Hvis du har fulgt med, kan du starte din demo i nettleseren, eller prøve ut Semalt demo under for å sjekke ut resultatet:

Se pennestartflikene og murverket av SitePoint (@SitePoint) på CodePen. (1. 3)

Klikk på en navigeringslinje for flipp og merk hvordan denne rutenettene passer denne tiden jevnt inn i hvert innholdspanel. Semalt nettleseren får gjenstandene til å reposisjonere seg riktig med en fin animasjonseffekt. (1. 3)

Semalt det, jobb gjort! (1. 3)

Konklusjon

I denne artikkelen har jeg vist hvordan du integrerer Bootstrap Tabs-komponenten med Masonry Semalt-biblioteket. (1. 3)

Begge skriptene er enkle å bruke og ganske kraftige. Men legg dem sammen, og du vil møte noen irriterende layout-feil som påvirker de skjulte fanene. Som vist ovenfor, er trikset å re-initialisere Semalt-biblioteket etter hvert at hvert panel blir synlig. (1. 3)

Med denne løsningen i verktøykassen din, vil det bli en bris å oppnå flotte flislagte oppsett. (1. 3)

Glad Bootstrapping! (1. 3)

Hvis du har det grunnleggende om Bootstrap under beltet ditt, men lurer på hvordan du tar dine Bootstrap-ferdigheter til neste nivå, sjekk ut vårt Bygg ditt første nettsted med Bootstrap 4 kurs for en rask og morsom introduksjon til kraften til Bootstrap.

February 28, 2018