Karrousel
'n Skyfievertoning-komponent vir fietsry deur elemente - prente of skyfies van teks - soos 'n karrousel.
Hoe dit werk
Die karrousel is 'n skyfievertoning vir fietsry deur 'n reeks inhoud, gebou met CSS 3D-transformasies en 'n bietjie JavaScript. Dit werk met 'n reeks beelde, teks of persoonlike opmaak. Dit sluit ook ondersteuning vir vorige/volgende kontroles en aanwysers in.
In blaaiers waar die bladsysigbaarheid-API ondersteun word, sal die karrousel gly vermy wanneer die webblad nie vir die gebruiker sigbaar is nie (soos wanneer die blaaieroortjie onaktief is, die blaaiervenster geminimaliseer word, ens.).
prefers-reduced-motion
medianavraag. Sien die
verminderde beweging-afdeling van ons toeganklikheidsdokumentasie .
Neem asseblief kennis dat geneste karrousels nie gesteun word nie, en karrousels voldoen oor die algemeen nie aan toeganklikheidstandaarde nie.
Voorbeeld
Karrousels normaliseer nie outomaties skyfie-afmetings nie. As sodanig moet jy dalk bykomende nutsprogramme of pasgemaakte style gebruik om die inhoud op die regte grootte te kry. Terwyl karrousels vorige/volgende kontroles en aanwysers ondersteun, word dit nie uitdruklik vereis nie. Voeg by en pasmaak soos jy goeddink.
Die .active
klas moet by een van die skyfies gevoeg word anders sal die karrousel nie sigbaar wees nie. Maak ook seker dat jy 'n unieke id
op die .carousel
vir opsionele kontroles stel, veral as jy verskeie karrousels op 'n enkele bladsy gebruik. Beheer- en aanwyserelemente moet 'n data-bs-target
kenmerk hê (of href
vir skakels) wat ooreenstem met die id
van die .carousel
element.
Slegs skyfies
Hier is 'n karrousel met slegs skyfies. Let op die teenwoordigheid van die .d-block
en .w-100
op karrouselbeelde om blaaier verstekbeeldbelyning te voorkom.
<div id="carouselExampleSlidesOnly" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
</div>
</div>
Met kontroles
Voeg die vorige en volgende kontroles by. Ons beveel aan om <button>
elemente te gebruik, maar jy kan ook <a>
elemente met role="button"
.
<div id="carouselExampleControls" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleControls" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleControls" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
Met aanwysers
Jy kan ook die aanwysers by die karrousel voeg, langs die kontroles ook.
<div id="carouselExampleIndicators" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-indicators">
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2" aria-label="Slide 3"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
Met byskrifte
Voeg byskrifte maklik by jou skyfies met die .carousel-caption
element binne enige .carousel-item
. Hulle kan maklik op kleiner viewports versteek word, soos hieronder getoon, met opsionele vertoonhulpmiddels . Ons steek hulle aanvanklik weg met .d-none
en bring hulle terug op mediumgrootte toestelle met .d-md-block
.
<div id="carouselExampleCaptions" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-indicators">
<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="2" aria-label="Slide 3"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img src="..." class="d-block w-100" alt="...">
<div class="carousel-caption d-none d-md-block">
<h5>First slide label</h5>
<p>Some representative placeholder content for the first slide.</p>
</div>
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
<div class="carousel-caption d-none d-md-block">
<h5>Second slide label</h5>
<p>Some representative placeholder content for the second slide.</p>
</div>
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
<div class="carousel-caption d-none d-md-block">
<h5>Third slide label</h5>
<p>Some representative placeholder content for the third slide.</p>
</div>
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
Crossfade
Voeg .carousel-fade
by jou karrousel om skyfies te animeer met 'n vervaag-oorgang in plaas van 'n skyfie.
<div id="carouselExampleFade" class="carousel slide carousel-fade" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleFade" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleFade" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
Individuele .carousel-item
interval
Voeg data-bs-interval=""
by 'n .carousel-item
om die hoeveelheid tyd om te vertraag tussen outomatiese fietsry na die volgende item te verander.
<div id="carouselExampleInterval" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active" data-bs-interval="10000">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item" data-bs-interval="2000">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleInterval" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleInterval" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
Deaktiveer raakswiep
Karrousels ondersteun swiep links/regs op raakskermtoestelle om tussen skyfies te beweeg. Dit kan gedeaktiveer word met die data-bs-touch
kenmerk. Die voorbeeld hieronder sluit ook nie die data-bs-ride
kenmerk in nie en het data-bs-interval="false"
dus nie outomaties speel nie.
<div id="carouselExampleControlsNoTouching" class="carousel slide" data-bs-touch="false" data-bs-interval="false">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleControlsNoTouching" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleControlsNoTouching" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
Donker variant
Voeg .carousel-dark
by die .carousel
vir donkerder kontroles, aanwysers en byskrifte. Kontroles is omgekeer van hul verstek wit vulling met die filter
CSS-eienskap. Byskrifte en kontroles het bykomende Sass-veranderlikes wat die color
en pasmaak background-color
.
<div id="carouselExampleDark" class="carousel carousel-dark slide" data-bs-ride="carousel">
<div class="carousel-indicators">
<button type="button" data-bs-target="#carouselExampleDark" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-bs-target="#carouselExampleDark" data-bs-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-bs-target="#carouselExampleDark" data-bs-slide-to="2" aria-label="Slide 3"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active" data-bs-interval="10000">
<img src="..." class="d-block w-100" alt="...">
<div class="carousel-caption d-none d-md-block">
<h5>First slide label</h5>
<p>Some representative placeholder content for the first slide.</p>
</div>
</div>
<div class="carousel-item" data-bs-interval="2000">
<img src="..." class="d-block w-100" alt="...">
<div class="carousel-caption d-none d-md-block">
<h5>Second slide label</h5>
<p>Some representative placeholder content for the second slide.</p>
</div>
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
<div class="carousel-caption d-none d-md-block">
<h5>Third slide label</h5>
<p>Some representative placeholder content for the third slide.</p>
</div>
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleDark" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleDark" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
Pasgemaakte oorgang
Die oorgangsduur van .carousel-item
kan verander word met die $carousel-transition-duration
Sass-veranderlike voor samestelling of pasgemaakte style as jy die saamgestelde CSS gebruik. As veelvuldige oorgange toegepas word, maak seker dat die transformasie-oorgang eers gedefinieer word (bv. transition: transform 2s ease, opacity .5s ease-out
).
Sass
Veranderlikes
$carousel-control-color: $white;
$carousel-control-width: 15%;
$carousel-control-opacity: .5;
$carousel-control-hover-opacity: .9;
$carousel-control-transition: opacity .15s ease;
$carousel-indicator-width: 30px;
$carousel-indicator-height: 3px;
$carousel-indicator-hit-area-height: 10px;
$carousel-indicator-spacer: 3px;
$carousel-indicator-opacity: .5;
$carousel-indicator-active-bg: $white;
$carousel-indicator-active-opacity: 1;
$carousel-indicator-transition: opacity .6s ease;
$carousel-caption-width: 70%;
$carousel-caption-color: $white;
$carousel-caption-padding-y: 1.25rem;
$carousel-caption-spacer: 1.25rem;
$carousel-control-icon-width: 2rem;
$carousel-control-prev-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/></svg>");
$carousel-control-next-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/></svg>");
$carousel-transition-duration: .6s;
$carousel-transition: transform $carousel-transition-duration ease-in-out; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)
$carousel-dark-indicator-active-bg: $black;
$carousel-dark-caption-color: $black;
$carousel-dark-control-icon-filter: invert(1) grayscale(100);
Gebruik
Via data-eienskappe
Gebruik data-kenmerke om die posisie van die karrousel maklik te beheer. data-bs-slide
aanvaar die sleutelwoorde prev
of next
, wat die skuifposisie relatief tot sy huidige posisie verander. Alternatiewelik, gebruik data-bs-slide-to
om 'n rou skyfie-indeks na die karrousel deur te data-bs-slide-to="2"
gee, wat die skyfieposisie verskuif na 'n spesifieke indeks wat begin met 0
.
Die data-bs-ride="carousel"
kenmerk word gebruik om 'n karrousel as animasie te merk vanaf bladsy laai. As jy dit nie gebruik data-bs-ride="carousel"
om jou karrousel te inisialiseer nie, moet jy dit self inisialiseer. Dit kan nie in kombinasie met (oortollige en onnodige) eksplisiete JavaScript-inisialisering van dieselfde karrousel gebruik word nie.
Via JavaScript
Bel karrousel handmatig met:
var myCarousel = document.querySelector('#myCarousel')
var carousel = new bootstrap.Carousel(myCarousel)
Opsies
Opsies kan deur data-kenmerke of JavaScript deurgegee word. Vir data-kenmerke, voeg die opsienaam by data-bs-
, soos in data-bs-interval=""
.
Naam | Tik | Verstek | Beskrywing |
---|---|---|---|
interval |
nommer | 5000 |
Die tyd om te vertraag tussen die outomatiese fietsry van 'n item. As false , sal die karrousel nie outomaties loop nie. |
keyboard |
boolean | true |
Of die karrousel op sleutelbordgebeure moet reageer. |
pause |
tou | boolean | 'hover' |
As dit op gestel is Op aanraking-geaktiveerde toestelle, wanneer dit op gestel is |
ride |
tou | boolean | false |
Speel die karrousel outomaties nadat die gebruiker die eerste item met die hand gebruik het. As dit op gestel is 'carousel' , speel die karrousel outomaties wanneer dit gelaai word. |
wrap |
boolean | true |
Of die karrousel aanhoudend moet fietsry of harde stops moet hê. |
touch |
boolean | true |
Of die karrousel links/regs-swiep-interaksies op raakskermtoestelle moet ondersteun. |
Metodes
Asinchroniese metodes en oorgange
Alle API-metodes is asynchronies en begin 'n oorgang . Hulle keer terug na die oproeper sodra die oorgang begin is, maar voordat dit eindig . Daarbenewens sal 'n metode-oproep op 'n oorgangskomponent geïgnoreer word .
Jy kan byvoorbeeld 'n karrousel-instansie met die karrouselkonstruktor skep om met bykomende opsies te inisialiseer en deur items te begin fiets:
var myCarousel = document.querySelector('#myCarousel')
var carousel = new bootstrap.Carousel(myCarousel, {
interval: 2000,
wrap: false
})
Metode | Beskrywing |
---|---|
cycle |
Blaai deur die karrousel-items van links na regs. |
pause |
Stop die karrousel om deur items te fiets. |
prev |
Blaai na die vorige item. Keer terug na die oproeper voordat die vorige item gewys is (bv. voor die slid.bs.carousel gebeurtenis plaasvind). |
next |
Blaai na die volgende item. Keer terug na die oproeper voordat die volgende item gewys is (bv. voor die slid.bs.carousel gebeurtenis plaasvind). |
nextWhenVisible |
Moenie karrousel na volgende ry wanneer die bladsy nie sigbaar is nie of die karrousel of sy ouer nie sigbaar is nie. Keer terug na die beller voordat die teikenitem gewys is |
to |
Sit die karrousel na 'n spesifieke raam (0 gebaseer, soortgelyk aan 'n skikking). Keer terug na die oproeper voordat die teikenitem gewys is (bv. voor die slid.bs.carousel gebeurtenis plaasvind). |
dispose |
Vernietig 'n element se karrousel. (Verwyder gestoorde data op die DOM-element) |
getInstance |
Statiese metode wat jou toelaat om die karrousel-instansie te kry wat met 'n DOM-element geassosieer word, jy kan dit so gebruik:bootstrap.Carousel.getInstance(element) |
getOrCreateInstance |
Statiese metode wat 'n karrousel-instansie wat met 'n DOM-element geassosieer word, terugstuur of 'n nuwe een skep ingeval dit nie geïnisialiseer is nie. Jy kan dit so gebruik:bootstrap.Carousel.getOrCreateInstance(element) |
Gebeurtenisse
Bootstrap se karrouselklas stel twee gebeurtenisse bloot vir inhaak by karrouselfunksionaliteit. Albei geleenthede het die volgende bykomende eienskappe:
direction
: Die rigting waarin die karrousel gly (óf"left"
óf"right"
).relatedTarget
: Die DOM-element wat in plek geskuif word as die aktiewe item.from
: Die indeks van die huidige itemto
: Die indeks van die volgende item
Alle karrouselgebeurtenisse word op die karrousel self afgevuur (dws by die <div class="carousel">
).
Soort gebeurtenis | Beskrywing |
---|---|
slide.bs.carousel |
Vuur onmiddellik wanneer die slide instansiemetode aangeroep word. |
slid.bs.carousel |
Afgevuur wanneer die karrousel sy gly-oorgang voltooi het. |
var myCarousel = document.getElementById('myCarousel')
myCarousel.addEventListener('slide.bs.carousel', function () {
// do something...
})