Карусель
Карусель кебек элементлар аша велосипедта слайдшоу компоненты - рәсемнәр яки текст слайдлары.
Ничек бу эшли
Карусель - велосипедта велосипед өчен слайд-шоу, CSS 3D трансформациясе һәм бераз JavaScript белән төзелгән. Ул рәсемнәр, текст яки махсус билгеләр белән эшли. Бу шулай ук алдагы / киләсе контроль һәм күрсәткечләргә ярдәм күрсәтә.
Page Visibility API ярдәм иткән браузерларда карусель веб-бит кулланучыга күренмәгәндә тайпылудан сакланыр (мәсәлән, браузер салынмасы актив булмаганда, браузер тәрәзәсе минимум һ.б.).
prefers-reduced-motion
медиа соравына бәйле. Безнең документларның кыскартылган хәрәкәт бүлеген карагыз
.
Зинһар, шуны онытмагыз: ояланган карусельләр булышмый, һәм карусельләр гадәттә мөмкинлек стандартларына туры килми.
Мисал
Карусельләр слайд үлчәмнәрен автоматик рәвештә нормалаштырмыйлар. Шулай ��теп, сезгә эчтәлекне тиешле күләмдә куллану өчен өстәмә коммуналь хезмәтләр яки махсус стильләр кулланырга кирәк булырга мөмкин. Карусельләр алдагы / киләсе контроль һәм күрсәткечләрне хупласа да, алар ачыктан-ачык таләп ителми. Fitзегез теләгәнчә өстәгез һәм көйләгез.
.active
Классны слайдларның берсенә өстәргә кирәк, югыйсә карусель күренмәячәк. Өстәмә контроль өчен уникаль куярга онытмагыз id
, .carousel
аеруча бер биттә берничә карусель куллансагыз. Контроль һәм күрсәткеч элементлары элементның туры килгән атрибутына data-bs-target
(яки href
сылтамаларга) ия булырга тиеш .id
.carousel
Слайдлар гына
Менә слайдлар белән карусель. Браузерның рәсемнәрнең тигезләнүен булдырмас өчен, карусель рәсемнәренең .d-block
булуына игътибар итегез ..w-100
<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>
Контроль белән
Алдагы һәм киләсе идарәләргә өстәү. Без элементларны кулланырга киңәш итәбез <button>
, ләкин сез шулай ук <a>
элементларны куллана аласыз 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>
Күрсәткечләр белән
Сез карусельгә күрсәткечләр белән идарә итә аласыз.
<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>
Язулар белән
Слайдларга .carousel-caption
теләсә нинди элемент белән җиңел языгыз .carousel-item
. Алар кечерәк күренешләрдә җиңел яшерелергә мөмкин, аста күрсәтелгәнчә, өстәмә күрсәтү ярдәме белән . Без аларны башта яшерәбез .d-none
һәм аларны уртача зурлыктагы җайланмаларга кире кайтарабыз .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>
Кроссфейд
.carousel-fade
Слайд урынына сүнгән күчү белән слайдларны җанландыру өчен карусельгә өстәгез .
<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>
Индивидуаль .carousel-item
интервал
Автоматик велосипедта киләсе пунктка тоткарлану өчен вакыт күләмен үзгәртү өчен data-bs-interval=""
өстәгез ..carousel-item
<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>
Сенсорны сүндерүне сүндерегез
Карусельләр слайдлар арасында хәрәкәт итү өчен сенсорлы экран җайланмаларында сулга / уңга сикерүне тәэмин итә. Бу атрибутн�� кулланып сүндерергә мөмкин data-bs-touch
. Түбәндәге мисал шулай ук data-bs-ride
атрибутны кертми һәм автомат рәвештә data-bs-interval="false"
уйнамый.
<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>
Караңгы вариант
Караңгы контроль, күрсәткечләр, язулар өчен караңгыга .carousel-dark
өстәгез . Контрольләр CSS милеге .carousel
белән килешенгән ак тутырудан кире кайтарылды. filter
Тапшырулар һәм контроль өстәмә Sass үзгәрүчәннәре бар color
һәм 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>
Махсус күчү
Күчерүнең озынлыгы Sass үзгәрүчесе белән компиляцияләнгәнче яки махсус стильләр .carousel-item
белән үзгәртелергә мөмкин, $carousel-transition-duration
әгәр сез тупланган CSS кулланасыз икән. Әгәр дә берничә күчеш кулланылса, башта трансформациянең күчүен билгеләгез (мәс. transition: transform 2s ease, opacity .5s ease-out
).
Сасс
Variзгәрешләр
$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);
Куллану
Мәгълүмат атрибутлары аша
Карусель торышын җиңел контрольдә тоту өчен мәгълүмат атрибутларын кулланыгыз. data-bs-slide
ачкыч сүзләрне кабул итә prev
яки next
слайд позициясен хәзерге торышына үзгәртә. Альтернатив рәвештә, data-bs-slide-to
чимал слайд индексын карусельгә күчерү өчен кулланыгыз data-bs-slide-to="2"
, ул слайд позициясен билгеле индекска күчерә 0
.
data-bs-ride="carousel"
Атрибут карусельне бит йөгеннән башлап җанландыручы итеп билгеләр өчен кулланыла . Карусельне башлау өчен кулланмасаң data-bs-ride="carousel"
, аны үзең башларга тиеш. Аны шул ук карусельнең JavaScript инициализациясе белән (артык һәм кирәксез) ачык кулланып булмый.
JavaScript аша
Карусель белән кул белән шалтыратыгыз:
var myCarousel = document.querySelector('#myCarousel')
var carousel = new bootstrap.Carousel(myCarousel)
Вариантлар
Вариантларны мәгълүмат атрибутлары яки JavaScript аша бирергә мөмкин. Мәгълүмат атрибутлары өчен вариант исемен data-bs-
өстәгез data-bs-interval=""
.
Исем | Тип | Килешү | Тасвирлау |
---|---|---|---|
interval |
саны | 5000 |
Автоматик велосипедта велосипедта тоткарлану вакыты. false Карусель автоматик рәвештә әйләнмәсә . |
keyboard |
буле | true |
Карусель клавиатура вакыйгаларына реакция бирергә тиешме. |
pause |
кыл | буле | 'hover' |
Сенсор ярдәмендә эшләнгән җайланмаларда, |
ride |
кыл | буле | false |
Кулусель беренче әйберне кул белән әйләндергәннән соң карусельне автоматлаштыра. Әгәр көйләнгән булса 'carousel' , карусельне йөк өстендә автоматлаштыра. |
wrap |
буле | true |
Карусель өзлексез әйләнергә тиешме яки каты тукталышларга ияме. |
touch |
буле | true |
Карусель сенсорлы экран җайланмаларында сул / уң сөртү үзара бәйләнешне хупларга тиешме. |
Методлар
Асинхрон ысуллар һәм күчү
Барлык API ысуллары да асинхрон һәм күчү башлый . Күчерелеш башлангач, ләкин ул беткәнче шалтыратучыга кире кайталар . Моннан тыш, күчү компонентына методик чакыру игътибарсыз калачак .
Күбрәк мәгълүмат алу өчен безнең JavaScript документларын карагыз .
Сез карусель конструкторы белән карусель инстанциясен булдыра аласыз, мәсәлән, өстәмә вариантлар белән башлап, әйберләр аша велосипедта йөри башлау өчен:
var myCarousel = document.querySelector('#myCarousel')
var carousel = new bootstrap.Carousel(myCarousel, {
interval: 2000,
wrap: false
})
Метод | Тасвирлау |
---|---|
cycle |
Сулдан уңга карусель әйберләре аша цикллар. |
pause |
Карусельне велосипедта әйберләр аша туктата. |
prev |
Алдагы пунктка цикллар. Алдагы пункт күрсәтелгәнче шалтыратучыга кире кайта (мәсәлән, slid.bs.carousel вакыйга булганчы). |
next |
Киләсе пунктка цикллар. Киләсе пункт күрсәтелгәнче шалтыратучыга кире кайта (мәсәлән, slid.bs.carousel вакыйга булганчы). |
nextWhenVisible |
Карусельне бит күренмәгәндә яки карусель яки аның әти-әнисе күренмәгәндә әйләндермәгез. Максатлы әйбер күрсәтелгәнче шалтыратучыга кире кайта |
to |
Карусельне билгеле бер рамкага әйләндерә (0 нигезендә, массивга охшаган). Максатлы әйбер күрсәтелгәнче шалтыратучыга кире кайта (мәсәлән, slid.bs.carousel вакыйга булганчы). |
dispose |
Элемент каруселын җимерә. (DOM элементында сакланган мәгълүматны бетерә) |
getInstance |
DOM элементына карусель инстанциясен алырга мөмкинлек биргән статик ысул, сез аны болай куллана аласыз:bootstrap.Carousel.getInstance(element) |
getOrCreateInstance |
DOM элементына бәйләнгән карусель инстанциясен кайтаручы яки башлангыч булмаган очракта яңасын булдыручы статик ысул. Сез аны болай куллана аласыз:bootstrap.Carousel.getOrCreateInstance(element) |
Вакыйгалар
Bootstrap карусель классы карусель функциясенә керү өчен ике вакыйганы фаш итә. Ике вакыйганың да түбәндәге өстәмә үзенчәлекләре бар:
direction
: Карусель сикергән юнәлеш (я"left"
)"right"
.relatedTarget
: Актив әйбер буларак урынга сузылган DOM элементы.from
: Агымдагы пункт индексыto
: Киләсе пункт индексы
Барлык карусель вакыйгалары карусельнең үзенә (ягъни <div class="carousel">
).
Вакыйга төре | Тасвирлау |
---|---|
slide.bs.carousel |
slide Мисал ысулы кулланылганда шунда ук янып тора. |
slid.bs.carousel |
Карусель слайдка күчү тәмамлангач. |
var myCarousel = document.getElementById('myCarousel')
myCarousel.addEventListener('slide.bs.carousel', function () {
// do something...
})