Karuselo
Bildprezenta komponanto por bicikli tra elementoj - bildoj aŭ lumbildoj - kiel karuselo.
Kiel ĝi funkcias
La karuselo estas bildoprezento por bicikli tra serio da enhavo, konstruita kun CSS 3D transformoj kaj iom da JavaScript. Ĝi funkcias kun serio de bildoj, teksto aŭ kutima markado. Ĝi ankaŭ inkluzivas subtenon por antaŭaj/sekvaj kontroloj kaj indikiloj.
En retumiloj kie la Page Visibility API estas subtenata, la karuselo evitos gliti kiam la retpaĝo ne estas videbla por la uzanto (kiel kiam la retumila langeto estas neaktiva, la retumila fenestro estas minimumigita, ktp.).
prefers-reduced-motion
amaskomunikila demando. Vidu la
sekcion pri reduktita moviĝo de nia dokumentaro pri alirebleco .
Bonvolu konscii, ke nestitaj karuseloj ne estas subtenataj, kaj karuseloj ĝenerale ne konformas al alireblaj normoj.
Finfine, se vi konstruas nian JavaScript el la fonto, ĝi postulasutil.js
.
Ekzemplo
Karuseloj ne aŭtomate normaligas dimensiojn de lumbildoj. Kiel tia, vi eble bezonos uzi pliajn ilojn aŭ kutimajn stilojn por taŭge grandeco de enhavo. Dum karuseloj subtenas antaŭajn/postajn kontrolojn kaj indikilojn, ili ne estas eksplicite postulataj. Aldonu kaj agordu laŭplaĉe.
La .active
klaso devas esti aldonita al unu el la diapozitivoj alie la karuselo ne estos videbla. Ankaŭ nepre agordu unikan id
por .carousel
laŭvolaj kontroloj, precipe se vi uzas plurajn karuselojn sur ununura paĝo. Kontrolaj kaj indikilaj elementoj devas havi data-target
atributon (aŭ href
por ligiloj) kiu kongruas kun la id
de la .carousel
elemento.
Nur diapozitivoj
Jen karuselo kun nur diapozitivoj. Notu la ĉeeston de la .d-block
kaj .w-100
sur karuselaj bildoj por malhelpi retumilon defaŭltan bildan vicigon.
<div id="carouselExampleSlidesOnly" class="carousel slide" data-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>
Kun kontroloj
Aldonante la antaŭajn kaj sekvajn kontrolojn. Ni rekomendas uzi <button>
elementojn, sed vi povas ankaŭ uzi <a>
elementojn kun role="button"
.
<div id="carouselExampleControls" class="carousel slide" data-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-target="#carouselExampleControls" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-target="#carouselExampleControls" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</button>
</div>
Kun indikiloj
Vi ankaŭ povas aldoni la indikilojn al la karuselo, kune kun la kontroloj, ankaŭ.
<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
</ol>
<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-target="#carouselExampleIndicators" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-target="#carouselExampleIndicators" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</button>
</div>
Kun bildotekstoj
Aldonu subtitolojn al viaj diapozitivoj facile per la .carousel-caption
elemento en iu ajn .carousel-item
. Ili povas esti facile kaŝitaj sur pli malgrandaj vidfenestroj, kiel montrite malsupre, kun laŭvolaj montraj utilecoj . Ni kaŝas ilin komence per .d-none
kaj revenigas ilin sur mezgrandaj aparatoj kun .d-md-block
.
<div id="carouselExampleCaptions" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carouselExampleCaptions" data-slide-to="0" class="active"></li>
<li data-target="#carouselExampleCaptions" data-slide-to="1"></li>
<li data-target="#carouselExampleCaptions" data-slide-to="2"></li>
</ol>
<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-target="#carouselExampleCaptions" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-target="#carouselExampleCaptions" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</button>
</div>
Crossfade
Aldonu .carousel-fade
al via karuselo por vigligi diapozitivojn per fada transiro anstataŭ diapozitivo. Depende de via karusela enhavo (ekz., tekstaj nur diapozitivoj), vi eble volas aldoni .bg-body
aŭ iun kutiman CSS al la .carousel-item
s por ĝusta interkruciĝo.
<div id="carouselExampleFade" class="carousel slide carousel-fade" data-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-target="#carouselExampleFade" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-target="#carouselExampleFade" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</button>
</div>
Individua .carousel-item
intervalo
Aldonu data-interval=""
al .carousel-item
por ŝanĝi la kvanton da tempo por prokrasti inter aŭtomate biciklado al la sekva ero.
<div id="carouselExampleInterval" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active" data-interval="10000">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item" data-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-target="#carouselExampleInterval" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-target="#carouselExampleInterval" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</button>
</div>
Malebligu tuŝan svingadon
Karuseloj subtenas svingadon maldekstren/dekstren sur tuŝekranaj aparatoj por moviĝi inter lumbildoj. Ĉi tio povas esti malŝaltita uzante la data-touch
atributon. La suba ekzemplo ankaŭ ne inkluzivas la data-ride
atributon kaj havas data-interval="false"
do ĝi ne aŭtomate ludas.
<div id="carouselExampleControlsNoTouching" class="carousel slide" data-touch="false" data-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-target="#carouselExampleControlsNoTouching" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-target="#carouselExampleControlsNoTouching" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</button>
</div>
Uzado
Per datumaj atributoj
Uzu datumajn atributojn por facile kontroli la pozicion de la karuselo. data-slide
akceptas la ŝlosilvortojn prev
aŭ next
, kiu ŝanĝas la glitpozicion rilate al ĝia nuna pozicio. Alternative, uzu data-slide-to
por transdoni krudan glitan indekson al la karuselo data-slide-to="2"
, kiu movas la glitpozicion al aparta indekso komencanta per 0
.
La data-ride="carousel"
atributo estas uzata por marki karuselon kiel vigliganta ekde la paĝa ŝarĝo. Se vi ne uzas data-ride="carousel"
pravalorigi vian karuselon, vi devas mem pravalorigi ĝin. Ĝi ne povas esti uzata en kombinaĵo kun (redunda kaj nenecesa) eksplicita JavaScript-komencigo de la sama karuselo.
Per JavaScript
Voku karuselon permane kun:
$('.carousel').carousel()
Opcioj
Opcioj povas esti pasitaj per datumaj atributoj aŭ JavaScript. Por datumaj atributoj, aldonu la opcionomon al data-
, kiel en data-interval=""
.
Nomo | Tajpu | Defaŭlte | Priskribo |
---|---|---|---|
intervalo | nombro | 5000 | La kvanto da tempo por prokrasti inter aŭtomate biciklado de objekto. Se false , karuselo ne aŭtomate ciklos. |
klavaro | bulea | vera | Ĉu la karuselo devus reagi al klavaraj eventoj. |
paŭzo | ŝnuro | bulea | 'ŝvebi' | Se agordita al Sur tuŝ-ebligitaj aparatoj, kiam agordita al |
rajdi | ŝnuro | malvera | Aŭtomate ludas la karuselon post kiam la uzanto permane biciklas la unuan eron. Se agordita al 'carousel' , aŭtomate ludas la karuselon dum ŝarĝo. |
envolvi | bulea | vera | Ĉu la karuselo devas bicikli kontinue aŭ havi malfacilajn haltojn. |
tuŝi | bulea | vera | Ĉu la karuselo devus subteni maldekstren/dekstren glitajn interagojn sur tuŝekranaj aparatoj. |
Metodoj
Nesinkronaj metodoj kaj transiroj
Ĉiuj API-metodoj estas nesinkronaj kaj komencas transiron . Ili revenas al la alvokanto tuj kiam la transiro estas komencita sed antaŭ ol ĝi finiĝas . Krome, metodovoko sur transira komponento estos ignorita .
.carousel(options)
Komencas la karuselon kun laŭvolaj opcioj object
kaj komencas bicikli tra eroj.
$('.carousel').carousel({
interval: 2000
})
.carousel('cycle')
Biciklas tra la karuselaj eroj de maldekstre dekstren.
.carousel('pause')
Maldaŭrigas la karuselon de bicikli tra eroj.
.carousel(number)
Biciklas la karuselon al aparta kadro (bazita 0, simile al tabelo). Revenas al la alvokanto antaŭ ol la cela objekto estis montrita (te antaŭ ol la slid.bs.carousel
evento okazas).
.carousel('prev')
Ciklas al la antaŭa ero. Revenas al la alvokanto antaŭ ol la antaŭa ero estis montrita (te antaŭ ol la slid.bs.carousel
evento okazas).
.carousel('next')
Bicikloj al la sekva ero. Revenas al la alvokanto antaŭ ol la sekva ero estas montrita (t.e. antaŭ ol la slid.bs.carousel
evento okazas).
.carousel('dispose')
Detruas la karuselon de elemento.
.carousel('nextWhenVisible')
Ne bicikle la karuselon al la sekva kiam la paĝo ne estas videbla aŭ la karuselo aŭ ĝia patro ne estas videblaj. Revenas al la alvokanto antaŭ ol la sekva ero estas montrita (t.e. antaŭ ol la slid.bs.carousel
evento okazas).
.carousel('to')
Biciklas la karuselon al aparta kadro (bazita 0, simile al tabelo). Revenas al la alvokanto antaŭ ol la sekva ero estas montrita (t.e. antaŭ ol la slid.bs.carousel
evento okazas).
Eventoj
La karuselklaso de Bootstrap elmontras du okazaĵojn por hokado en karuselfunkciecon. Ambaŭ okazaĵoj havas la sekvajn kromajn trajtojn:
direction
: La direkto en kiu la karuselo glitas (aŭ"left"
aŭ"right"
).relatedTarget
: La DOM-elemento kiu estas glita en lokon kiel la aktiva objekto.from
: La indekso de la aktuala eroto
: La indekso de la sekva ero
Ĉiuj karuselaj eventoj estas pafitaj ĉe la karuselo mem (te ĉe la <div class="carousel">
).
Eventa Tipo | Priskribo |
---|---|
gliti.bs.karuselo | Ĉi tiu okazaĵo tuj ekfunkciigas kiam la slide ekzempla metodo estas alvokita. |
gliti.bs.karuselo | Ĉi tiu evento estas pafita kiam la karuselo kompletigis sian glitan transiron. |
$('#myCarousel').on('slide.bs.carousel', function () {
// do something...
})
Ŝanĝu transiran daŭron
La transira daŭro de .carousel-item
povas esti ŝanĝita per la $carousel-transition
Sass-variablo antaŭ kompili aŭ kutimajn stilojn se vi uzas la kompilitan CSS. Se pluraj transiroj estas aplikataj, certigu, ke la transformtransiro unue estas difinita (ekz. transition: transform 2s ease, opacity .5s ease-out
).