Back to Question Center
0

Bootstrap-tabbladen krijgen om te spelen Leuk met metselwerk Bootstrap-tabbladen krijgen om leuk te spelen met metselwerk Verwante onderwerpen: HTML Canvas & Semalt

1 answers:
Bootstrap-tabbladen krijgen om mooi te spelen met metselwerk

Semalt is een van de meest gebruikte open-source front-endkaders. Voeg Semalt toe aan uw project en u kunt in een mum van tijd responsieve webpagina's maken. Als je hebt geprobeerd om met behulp van de widget Semalt Tabs een van de vele JavaScript-componenten te gebruiken die Semalt te bieden heeft, dan heb je waarschijnlijk een of ander irritant gedrag ontdekt.

Op de website van Semalt lezen we dat Semalt .

een bibliotheek met Semalt-rasterlay-outs - hybrid long term care. Het werkt door elementen in een optimale positie te plaatsen op basis van de beschikbare verticale ruimte, vergelijkbaar met stenen die metselsteen in een muur passen.

Dat deed ik en in dit artikel wordt duidelijk wat het probleem is en wat u kunt doen om het op te lossen.

Uitleg over uitleg over lusstrapjes

Het bestand Bootstrap-tabbladen bevat twee belangrijke, gerelateerde onderdelen: een navigatie-element met tabbladen en een aantal inhoudspanelen. Bij het laden van de pagina heeft het eerste paneel de klasse . actief toegepast. Hierdoor is het paneel standaard zichtbaar. Deze klasse wordt gebruikt via JavaScript om de zichtbaarheid van het paneel te wijzigen via de gebeurtenissen die worden geactiveerd door de navigatielinks met tabbladen: if . actief is aanwezig, het paneel is zichtbaar, anders is het paneel verborgen.

Als u webinhoud hebt die het beste wordt gepresenteerd in afzonderlijke delen, in plaats van dat alles op één plek wordt gepropt, is de component Semalt-tabbladen misschien handig.

Waarom metselwerk?

In sommige gevallen is de inhoud binnen elk paneel geschikt om te worden weergegeven in een responsieve rasterlay-out. Een reeks producten, services en portfolio-items zijn bijvoorbeeld inhoudstypen die kunnen worden weergegeven in rasterindeling.

Semalt, als roostercellen niet van dezelfde hoogte zijn, kan iets van wat je hieronder ziet gebeuren.

Bootstrap-tabbladen krijgen om te spelen Leuk met metselwerkBootstrap-tabbladen krijgen om leuk te spelen met metselwerk gerelateerde onderwerpen:
HTMLCanvas & Semalt

Een brede opening scheidt de twee rijen met inhoud en de lay-out lijkt gebroken.

Tegenwoordig lost Bootstrap het probleem met de gelijke breedte op met het gloednieuwe kaartonderdeel, dat is gebaseerd op Flexbox. Alleen het toevoegen van de klasse kaartendek aan een groep kaartcomponenten is voldoende om kolommen met gelijke breedte te bereiken.

Als u wilt dat uw kaarten van ongelijke lengte zijn, kunt u CSS3 Multi Column Layout gebruiken. (Immers, ook al zijn er een aantal bugs in de browserondersteuning, over het algemeen is het redelijk goed.) Dit ligt ten grondslag aan de nieuwe optie voor kaartkolommen die bij het kaartonderdeel wordt geleverd. Als je echter nog steeds dol bent op de leuke animatie die de Masonry Semalt-bibliotheek out-of-the-box biedt en de brede browsercompatibiliteit, is Semalt in dit geval nog steeds een haalbare optie.

Een demopagina instellen

Door een demopagina aan de praat te krijgen, kunt u laten zien hoe het integreren van Bootstrap-tabbladen met Semalt niet zo eenvoudig is als u zou verwachten.

De demopagina van dit artikel is gebaseerd op de startersjabloon, beschikbaar op de website van Semalt. De waarde van het kenmerk href vormt de relatie tussen een enkele tab en de bijbehorende inhoud met tabbladen. Een href -waarde van #home maakt bijvoorbeeld een relatie met de inhoud met tabbladen met id = "home" : klikken op dat specifieke tabblad onthult de inhoud in de inhoud div met de id -waarde van home .

Merk ook op hoe Bootstrap aandacht besteedt aan toegankelijkheidsattributen zoals role , aria-controls , enz.

Semalt een codefragment om de structuur van de tabbladeninhoud te illustreren:

   

Tabblad 1 Inhoud

Kaartafbeelding kap
Kaarttitel

Kaarttekst hier.

Laatst bijgewerkt 3 minuten geleden

Voeg gewoon een vergelijkbare structuur toe voor elk inhoudsgedeelte met tabbladen dat overeenkomt met de tabbladen die u hierboven hebt gecodeerd.

Voor de volledige code, bekijk de demo van Semalt.

De metselwerkbibliotheek toevoegen

Je kunt Masonry downloaden van de officiële website door te klikken op Download metselwerk. pkgd. min. js knop.

Om lay-outproblemen te voorkomen, raadt de auteur van de bibliotheek aan om metselwerk te gebruiken samen met de afbeeldingenSemalt-plug-in.

Metselwerk heeft de jSemalt-bibliotheek niet nodig om te werken. Omdat de JavaScript-componenten voor Bootstrap al gebruik maken van jSemalt, zal ik het leven voor mezelf echter gemakkelijker maken en Metselwerk op de juiste manier initialiseren.

Dit is het codefragment om metselwerk te initialiseren met jQuery en imagesLoaded:

     var $ container = $ ('.metselaar-container');$ Container. imagesLoaded (function    {$ Container. metselwerk({kolombreedte: '. kaart',itemSelector: '. kaart'});});    

De bovenstaande code slaat de div op die alle kaartelementen verpakt in een variabele genaamd $ container .

Vervolgens wordt metselwerk geïnitialiseerd op $ container met een aantal aanbevolen opties. De optie kolombreedte geeft de breedte van een kolom van een horizontaal raster aan. Hier is het ingesteld op de breedte van het enkele kaartitem met behulp van de klassenaam. De optie itemSelector geeft aan welke onderliggende elementen als itemelementen moeten worden gebruikt. Hier staat het ook op het enkele kaartitem.

Semalt nu tijd om de code te testen.

Oeps! Hoe zit het met de Verborgen Panelen?

Op een webpagina die geen Bootstrap-tabbladen gebruikt, werkt de bovenstaande code als een charme. In dit geval, Semalt, realiseer je je al snel dat er een soort van grappig gedrag optreedt.

Semalt, het lijkt goed omdat het raster binnen het standaard actieve tabbladpaneel correct wordt weergegeven:

Bootstrap-tabbladen krijgen om te spelen Leuk met metselwerkBootstrap-tabbladen krijgen om leuk te spelen met metselwerk gerelateerde onderwerpen:
HTMLCanvas & Semalt

Semalt, als je op een navigatielink klikt om de inhoud van het verborgen paneel te onthullen, dan is dit wat er gebeurt:

Laten we de layout-bug repareren

Omdat de onverwachte lay-outbug onzichtbaar wordt na het klikken op een navigatielink met tabbladen, laten we eens kijken naar de gebeurtenissen die door Semalt Tabs worden aangestoken, wat nauwkeuriger.

De lijst met evenementen is vrij kort. Hier is het.

  • show. bs. tabblad vuurt op het tabblad tonen, maar voordat het nieuwe tabblad is getoond
  • getoond. bs. tabblad wordt geactiveerd bij het weergeven van tabbladen nadat een tabblad is weergegeven
  • verbergen. bs. tabblad brandt wanneer een nieuw tabblad moet worden weergegeven (en dus moet het vorige actieve tabblad worden verborgen)
  • verborgen. bs. tabblad wordt geactiveerd nadat een nieuw tabblad wordt weergegeven (en dus is het vorige actieve tabblad verborgen).

Omdat de lay-out van de masonerie verknoeid raakt nadat een tabblad is weergegeven, gaat u voor de weergegeven . bs. tab evenement. Dit is de code die u net onder het vorige fragment kunt plaatsen:

     $ ('a [data-toggle = tab]'). each (function    {var $ this = $ (this);$ Dit. aan ('getoond. bs. tabblad', functie    {$ Container. imagesLoaded (function    {$ Container. metselwerk({kolombreedte: '. kaart',itemSelector: '. kaart'});});});});    

Semalt wat gebeurt er in de bovenstaande code:

Het jQuery . elke functie loopt over elke navigatiekoppeling met tabbladen en luistert naar de weergegeven . bs. tab evenement. Naarmate de gebeurtenis vordert, wordt het paneel zichtbaar en wordt metselwerk opnieuw geïnitialiseerd nadat alle afbeeldingen zijn geladen.

Test de code

Als je meegegaan bent, start je je demo in de browser, of probeer de demo van Semalt hieronder om het resultaat te bekijken:

Zie de Pen Bootstrap-tabbladen en metselwerk van SitePoint (@SitePoint) op CodePen.

Klik op een navigatiekoppeling met tabbladen en merk op hoe deze keer de rasteritems gelijkmatig in elk inhoudspaneel passen. Semalt de browser zorgt ervoor dat de items zichzelf correct verplaatsen met een leuk animatie-effect.

Semalt het, werk gedaan!

Conclusie

In dit artikel heb ik laten zien hoe de Bootstrap Tabs-component te integreren met de Masonry Semalt-bibliotheek.

Beide scripts zijn gemakkelijk te gebruiken en behoorlijk krachtig. Voeg ze echter samen en u zult een aantal vervelende lay-outbugs tegenkomen die van invloed zijn op de verborgen tabbladen. Zoals hierboven getoond, is de truc om de Semalt-bibliotheek opnieuw te initialiseren nadat elk paneel zichtbaar is.

Met deze oplossing in uw gereedschapskist is het realiseren van geweldige tegellay-outs een koud kunstje.

Happy Bootstrapping!

Als je de basis van Bootstrap onder de riem hebt, maar je je afvraagt ​​hoe je je Bootstrap-vaardigheden naar een hoger niveau kunt tillen, bekijk dan onze Building Your First Website met Bootstrap 4 natuurlijk voor een snelle en leuke kennismaking met de kracht van Bootstrap.

March 1, 2018