Als het gaat om JavaScript in BS3, is er niet veel veranderd; de overgrote meerderheid van de veranderingen die we tot nu toe hebben gezien draaide rond de CSS- en componentensecties. Daar is een reden voor.
De meeste JavaScript-functies van BS2 (en overigens BS3) worden geleverd in de vorm van gegevensattributen. In de meeste gevallen hebben we al gezien hoe deze in de verschillende secties over componenten kunnen worden gebruikt, wat eigenlijk heel weinig laat wat specifiek is voor JavaScript.
In deze zelfstudie zal ik daarom kort het grootste deel van wat beschikbaar is bespreken en waar elders in de serie geen andere beschrijving staat, een kort voorbeeld laten zien van het gebruik van de beschikbare API..
De JS-faciliteiten die beschikbaar zijn in BS2 en BS3 zijn zeer uitbreidbaar, en zelfs een volledige reeks tutorials zou waarschijnlijk niet alles kunnen bestrijken wat mogelijk is. Ik raad u daarom sterk aan om naar de Bootstrap-website te gaan en de sectie over JavaScript te lezen.
Het eerste dat iemand opmerkt als het onderwerp JavaScript in Bootstrap aan de orde komt, zijn de modale dialoogvensters - en het is een kleine verrassing.
De modale boxen van BS3 zijn een van de gemakkelijkste implementaties (en een van de rijkste) die te zien zijn in een van de moderne browser HTML5-frameworks.
Het gebruik ervan is eenvoudig, maar vereist helaas nogal wat markeringen.
De volgende code geeft u een zeer eenvoudig voorbeeld:
Modaal voorbeeld geproduceerd door monster
Als u een modaal wilt weergeven, moet u eerst een triggerdoel hebben. In het bovenstaande voorbeeld is dit de knop gemarkeerd In dit voorbeeld de buitenste Uw trigger hoeft geen knop te zijn; het kan alles zijn dat een muisklik kan accepteren (of is ingesteld om te accepteren), zolang de kenmerken van de schakel- en doelgegevens zijn opgegeven. Als we eenmaal in het modale zelf zijn, zul je zien dat de structuur bestaat uit een aantal behoorlijk diep genest Dat merk je ook weer, er is een gemeenschappelijk thema om dingen te markeren om ze vriendelijk te maken voor schermlezers, en nogmaals, ik kan dit niet genoeg benadrukken: je moet alles in het werk stellen om ervoor te zorgen dat je opmaak net zo vriendelijk is voor toegankelijkheidstools mogelijk. Een modaal begint met een uiterlijk De volgende Zodra je de modale inhoudshell hebt gedefinieerd, kun je deze vervolgens in drie plaatsen plaatsen Je kunt aan de hand van de code in het voorbeeld hierboven zien dat we een afsluitkruis toevoegen, zoals we deden voor waarschuwingsvakken. Het enige verschil tussen dit slotkruis en dat wat we eerder zagen, is dat het Afgezien van het close-icoon, is de rest van de innerlijke inhoud van de modal gewoon normale BS3-markup en CSS. Alles wat u elders kunt gebruiken, kunt u in een modaal gebruiken en als het te hoog is voor het scherm, krijgt u een binnencontainer die automatisch overschakelt naar een schuifbaar element. Er zijn ook twee optionele breedtematen; deze worden toegevoegd aan het innerlijke U kunt de modal ook initialiseren met behulp van de JavaScript API op een standaard jQuery-manier; als u het gedrag van de standaardoptie wilt wijzigen, is het gebruik van de JQ-constructor de enige manier om dit te doen. De opties die kunnen worden gewijzigd zijn als volgt: Er zijn ook een aantal evenementen die worden aangedragen voor bepaalde acties, maar die vallen buiten het bestek van deze tutorial. Als je je herinnert, heb ik in het gedeelte over basisnavigatie vermeld dat het tabbladonderdeel kan worden bekabeld met extra markeringen om het omwisselen van inhoudsvensters voor jou daadwerkelijk aan te kunnen.. Als u een reeks tabbladen wilt markeren die automatisch worden gewijzigd met JavaScript, moet u eerst een Nadat u de navigatieset hebt gemaakt, moet u een outer maken De volgende code toont een voorbeeld hiervan: Door te verfijnen, leven we ... Vandaag vertelt de wetenschap ons dat de ... Jij en ik zijn levensvormen van de kwantumsoep ... Het tabbesturingselement heeft geen constructor die opties op dezelfde manier gebruikt als modal, maar er is wel een API-aanroep zodat u kunt zien welk tabblad programmatisch moet worden weergegeven. Om dit te doen, hoeft u alleen maar jQuery te gebruiken om de juiste selector te selecteren en vervolgens te bellen Iedereen houdt van tooltips - eenvoudige kleine pop-up-tags die kunnen worden gebruikt voor hulp en vele andere eenvoudige, beschrijvende taken. Het gebruik van een tooltip in BS3 is ongelooflijk eenvoudig. Wijs eenvoudig een data attribuut van toe De volgende code maakt een eenvoudige knop met een tooltip als bijlage bovenaan: Er is één kleine waarschuwing die van toepassing is op tooltips, maar is niet van toepassing op een ander element: u moet tooltips zelf initialiseren. Je kunt er tegelijkertijd verschillende opties aan toevoegen (net als met modals), maar je MOET ze initialiseren, anders verschijnen jouw tooltips niet. Om de knop in het vorige voorbeeld te initialiseren, plaatst u de volgende regel JavaScript ergens in uw pagina zodat deze wordt uitgevoerd zodra de DOM gereed is en de knop is gemaakt: Het is geheel aan jou hoe je elk van je knoppen selecteert. U kunt ze bijvoorbeeld allemaal selecteren via hun elementtype, maar u moet bellen Als alles werkt zoals verwacht, zou u zoiets als dit moeten zien: Vlak achter de eenvoudige tooltip komt de popover en net als de tooltip moet deze handmatig worden geïnitialiseerd met een oproep naar Een tooltip heeft meestal slechts een eenvoudige, één regel tekst, terwijl een popover groter is en meerdere HTML-elementen kan bevatten, variërend van alinea's tot knoppen en afbeeldingen. Het tweede verschil is dat er op het element moet worden geklikt voordat een popover wordt weergegeven, terwijl een tooltip automatisch is bij zweven. U maakt een popover op vrijwel dezelfde manier als een tooltip, behalve dat de pop-upinhoud binnen een gegevensteken wordt gedefinieerd Net als met de tooltip, ergens in het opstarten van uw document, moet u ook zorgen dat u het onderdeel initialiseert met behulp van iets als: Net als bij de tooltip kun je hier een object met opties doorgeven. Er zijn er veel beschikbaar, dus nogmaals, ik moedig je aan om de BS3-documenten te lezen om ze allemaal te leren. Als alles werkte, zou je je pagina moeten renderen en dit kunnen zien: Een van de dingen die in BS3 zijn verwijderd, was helaas de kant en klare accordeoncomponent. In de plaats daarvan is echter iets beters: het inklapbare paneel. Met deze panelen is het nog steeds net zo eenvoudig om een standaardaccordeon te maken, maar ze zijn nu ook afzonderlijk bruikbare, op zichzelf staande componenten, waarmee u dingen kunt doen zoals vouwinformatiegebieden, werkbalken en nog veel meer.. Een ding om op te merken, echter: als je een aangepaste build doet, moet je ook zeker zijn dat je de transition helper JavaScript plug-in opneemt. De BS3-documenten hebben meer informatie die u nodig heeft als u een aangepaste build uitvoert. Om een accordeon te maken van inklapbare panelen, hoeft u alleen maar een buitenste te maken Zodra u uw panelen hebt ingedeeld, hoeft u alleen maar een toe te voegen Het schakelattribuut moet de waarde van hebben De volgende code laat zien hoe dit te bereiken: Zoals vermeld hoeven panelen niet te worden gegroepeerd; ze kunnen op een enkele manier worden gebruikt met slechts één element als trigger voor het vouwen. Als u bijvoorbeeld een paneel met een eenvoudige knop wilt samenvouwen, zorg er dan voor dat uw knop een gegevenskenmerk heeft van Om deze tutorial af te ronden, is de laatste JavaScript-plugin die ik ga introduceren de nieuw ontworpen carrousel. BS2 had een carrousel, maar net als de accordeon is deze nu verwijderd en sterk vereenvoudigd om het gemakkelijker te gebruiken te maken. Meestal wordt de carrousel-plug-in bovenaan een pagina gebruikt om een roterende banner van afbeeldingen te leveren, en in BS2 was dit het enige waarvoor de carrousel kon worden gebruikt. In BS3 wordt inhoud die in de panelen van de carrousel kan worden geplaatst echter geroteerd, inclusief afbeeldingen, tekst, svg en nog veel meer. De volgende code toont een eenvoudig voorbeeld van het maken van een carrousel: Ruimtetijd is een constante. Will vereist verkenning Stardust vereist verkenning. Jij en ik zijn verhalenvertellers van de kosmos Ruimtetijd is een constante. Will vereist verkenning Er zijn een paar meer ingehouden JavaScript-objecten, maar de meeste zijn niet direct bruikbaar via de normale gebruikerscode en worden over het algemeen alleen in speciale omstandigheden gebruikt. De BS3-documenten hebben betrekking op alles wat ik heb gemist en als je diep in de beschikbare JavaScript-faciliteiten wilt graven, is een lang lezen en een goed begrip van hoe alles aan elkaar is gekoppeld zeker een vereiste. Een laatste opmerking: BS3 JavaScript-plug-ins zijn niets meer dan gewone jQuery-plug-ins (BS gebruikt jQuery onder de motorkap). Dit betekent dat het heel gemakkelijk zou moeten zijn om je favoriete jQuery-plugin uit plaatsen zoals unheap.com te halen en ze aan te passen om vrij gemakkelijk met BS3 te werken. Vergeet niet dat er nog steeds een groot aantal add-ons beschikbaar zijn, vooral om te gebruiken in combinatie met het framework, waarvan de meeste slechts een Google-zoekopdracht zijn. Deze tutorial staat voor een hoofdstuk van Bootstrap 3 Shortlyly, een gratis eBoek van het team van Syncfusion.Show Modal Dialog
. Voor een triggeractie die moet werken, moet een schakel- en doelgegevenskenmerk eraan zijn toegewezen en moet de schakeloptie de waarde hebben "modaal
"om te laten zien dat het een modale dialoog target. Het doel moet de ID-selector van de buitenste hebben ID = "myModal"
erop, wat betekent dat het data attribuut voor doelwit
zou moeten hebben #myModal
als zijn waarde.modaal
erop toegepast. Optioneel kun je ook toevoegen vervagen
, wat de modal een mooie soepele overgang zal geven bij het tonen en verbergen. Dit uiterlijk Z-Order
en al het andere in de weg van wereldwijde modale aanpassingen die je wilt maken.modal dialoogvenster
toegevoegd. Dat modale content
toegewezen. Het zit in deze derde modale-header
, modale lichaam
, en modale-footer
. Deze drie binnenste secties mogen NIET worden genest, maar eerder aan de markup worden toegevoegd als broers en zussen van elkaar en worden gebruikt om de inhoud voor de drie hoofdgedeelten van de dialoog te definiëren.ontslaan
data attribuut heeft een waarde van modaal
en niet alarm
. Elk klikbaar element dat is geplaatst binnen de innerlijke modale markup met dit gegevensattribuut, met deze waarde, zal het dialoogvenster sluiten wanneer erop wordt geklikt.modal dialoogvenster
modale-lg
en modale-sm
. De grote grootteklasse breidt de breedte van het modaal tot de helft van de schermbreedte uit (ideaal voor tabellen en lijsten), terwijl het kleine formaat de standaardbreedte verkleint tot ongeveer de helft van de oorspronkelijke grootte (ideaal voor zaken als ja / nee-prompts).$ ('# myModal'). modal (backdrop: true / false, keyboard: true / false, show: true / false, remote: 'pad naar url dat inhoud retourneert');
achtergrond:
Booleaans waar of onwaar om de schaduwachtergrond op de pagina op te nemen of niet, wanneer de modaal wordt getoond; als de waarde statisch
is opgegeven, dan wordt de achtergrond weergegeven, maar wordt het modaal NIET gesloten wanneer erop wordt geklikt, net als wanneer waar
is gebruikt.toetsenbord:
Boolean waar of onwaar; staat toe of staat de escape-toets toe om het modale te sluiten.laten zien:
Booleaans waar of onwaar, wordt automatisch het dialoogvenster weergegeven of wordt niet weergegeven zodra het is geïnitialiseerd.remote:
String met een URL om de innerlijke inhoud voor het dialoogvenster te krijgen; als dit wordt opgegeven, vraagt het dialoogvenster de URL om een stuk HTML te leveren dat in de hoofdtekst van het modaal kan worden gebruikt.tabs
op dezelfde manier als wordt weergegeven in de sectie Navigatiecomponenten. Deze
moet hebben elementen ingebed in elk van zijn
elementen, met de
href
van elk anker wijzend naar de ID kaart
van elk geassocieerd tab
.tab-inhoud
ernaar toe. Binnen hiervan tab-pane
en een ID kaart
kenmerk dat overeenkomt met het bijbehorende tabblad in de navigatieset. Optioneel kun je ook toevoegen vervagen
om tabbladen te laten vervagen wanneer ze veranderen, en actief
om te markeren welke van de tabbladen momenteel wordt getoond.
We zelfverwerkelijken, geloven we, we zijn herboren
We bestaan als vierdimensionale suprastructuren
Het doel van morfogenetische velden is om te planten ...
tab ( 'Show')
ben ermee bezig. Wanneer dit is gebeurd, maken uw tabbladen automatisch het tabblad waarnaar wordt verwezen het geselecteerde tabblad. Net als bij modals (en anderen), zijn er evenementen beschikbaar om u te vertellen wanneer dingen veranderen; de details en parameters van elke oproep zijn te vinden in de BS3-documenten.Tooltips en popovers
toggle
met de waarde tooltip
naar elk standaard HTML-element waarvoor u de tooltip wilt weergeven. Als u de tekst voor de knopinfo wilt definiëren, voegt u een titelkenmerk toe met de gewenste tekst en voegt u optioneel een gegevenskenmerk toe plaatsing
met de waarde links
, top
, bodem
, of rechts
zoals vereist, afhankelijk van de richting waarin u de tooltip wilt weergeven.
$ ( '# MyButton') tooltip (.);
tooltip ()
op elk element waaraan een tooltip is gekoppeld.popover ()
. Het belangrijkste verschil tussen een popover en een tooltip is dat popovers meer inhoud kunnen bevatten dan een tooltip.inhoud
, en de titel
attribuut wordt gebruikt om de popover een minititelgebied te geven (vergelijkbaar met de manier waarop het koptekstgedeelte op een paneelcomponent wordt gebruikt). De volgende code laat zien hoe u een eenvoudige popover definieert:$ ( '# MyButton') popover (.);
Inklapbare panelen
panel-groep
en geef het een ID kaart
. Dan, daarbinnen, heb je een reeks nodig div
een enkel onafhankelijk paneel zijn.paneelvormig title
in een panel-header
. Deze kop moet een bevatten tag met twee toegewezen gegevensattributen: één opgeroepen
data-toggle
, en één geroepen data-ouder
.ineenstorting
, en het attribuut parent moet de ID kaart
van de uiterlijke href
met de ID kaart
van het doelpaneel dat het object moet worden van het instortgedrag. Elk van de doelpanelen moet de klassen hebben paneelvormig collapse
en ineenstorting
toegewezen aan hen.
Accordeonvervanging geproduceerd door monster Bewustzijn is de rijkdom van de waarheid en van ons
De planeet straalt vierdimensionale suprastructuren uit
De werkelijkheid heeft altijd boodschappers uitgestraald waarvan de zielen worden geopend door sterrenstof
toggle
met de waarde ineenstorting
, en een data-attribuut genaamd doelwit
met de selector voor het doelpaneel als waarde.Carrousel
Carrousel geproduceerd door codevoorbeeld
Jij en ik zijn wezens van de planeet
Niets is onmogelijk
Jij en ik zijn wezens van de planeet