Source

Карусель

Кампанент слайд-шоў для цыклічнага перамяшчэння элементаў — відарысаў або тэкставых слайдаў — як карусель.

Як гэта працуе

Карусель - гэта слайд-шоў для перамяшчэння па серыі змесціва, створанае з выкарыстаннем 3D-пераўтварэнняў CSS і трохі JavaScript. Ён працуе з серыямі малюнкаў, тэкстам або карыстацкай разметкай. Ён таксама ўключае падтрымку папярэдніх/наступных элементаў кіравання і індыкатараў.

У браўзерах, дзе падтрымліваецца API бачнасці старонкі , карусель пазбягае слізгацення, калі вэб-старонка не бачная карыстальніку (напрыклад, калі ўкладка браўзера неактыўная, акно браўзера згорнута і г.д.).

Анімацыйны эфект гэтага кампанента залежыць ад prefers-reduced-motionмедыя-запыту. Глядзіце раздзел аб паменшаным руху нашай дакументацыі па спецыяльных магчымасцях .

Майце на ўвазе, што ўкладзеныя каруселі не падтрымліваюцца, і каруселі звычайна не адпавядаюць стандартам даступнасці.

Нарэшце, калі вы ствараеце наш JavaScript з зыходнага кода, для гэтага патрабуеццаutil.js .

Прыклад

Каруселі не нармалізуюць памеры слайдаў аўтаматычна. Такім чынам, вам можа спатрэбіцца выкарыстоўваць дадатковыя ўтыліты або карыстальніцкія стылі для адпаведнага памеру кантэнту. Нягледзячы на ​​тое, што каруселі падтрымліваюць папярэднія/наступныя элементы кіравання і індыкатары, яны не з'яўляюцца абавязковымі. Дадавайце і наладжвайце, як лічыце патрэбным.

Клас .activeтрэба дадаць на адзін са слайдаў, інакш карусель не будзе бачная. Таксама не забудзьцеся ўсталяваць унікальны ідэнтыфікатар .carouselдля дадатковых элементаў кіравання, асабліва калі вы выкарыстоўваеце некалькі каруселяў на адной старонцы. Элементы кіравання і індыкатара павінны мець data-targetатрыбут (або hrefдля спасылак), які адпавядае id .carouselэлемента.

Толькі слайды

Вось толькі з горак карусель. Звярніце ўвагу на наяўнасць .d-blockі .w-100на карусельных відарысах, каб прадухіліць выраўноўванне браўзера па змаўчанні.

<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>

З элементамі кіравання

Даданне папярэдніх і наступных элементаў кіравання:

<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>
  <a class="carousel-control-prev" href="#carouselExampleControls" role="button" data-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="carousel-control-next" href="#carouselExampleControls" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>

З індыкатарамі

Вы таксама можаце дадаць індыкатары ў карусель разам з элементамі кіравання.

<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>
  <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>

З тытрамі

Лёгка дадавайце подпісы да слайдаў з дапамогай .carousel-captionэлемента ў любым .carousel-item. Іх можна лёгка схаваць у меншых акнах прагляду, як паказана ніжэй, з дапамогай дадатковых утыліт дысплея . Мы спачатку хаваем іх з дапамогай .d-noneі вяртаем іх на прыладах сярэдняга памеру з дапамогай .d-md-block.

<div class="carousel-item">
  <img src="..." alt="...">
  <div class="carousel-caption d-none d-md-block">
    <h5>...</h5>
    <p>...</p>
  </div>
</div>

Перакрыжаваны плынь

Дадайце .carousel-fadeў сваю карусель, каб анімаваць слайды з знікаючым пераходам замест слайда.

<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>
  <a class="carousel-control-prev" href="#carouselExampleFade" role="button" data-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="carousel-control-next" href="#carouselExampleFade" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>

Дадайце data-interval=""да a .carousel-item, каб змяніць колькасць часу затрымкі паміж аўтаматычным пераходам да наступнага элемента.

<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>
  <a class="carousel-control-prev" href="#carouselExampleInterval" role="button" data-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="carousel-control-next" href="#carouselExampleInterval" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>

Выкарыстанне

Праз атрыбуты дадзеных

Выкарыстоўвайце атрыбуты дадзеных, каб лёгка кіраваць становішчам каруселі. data-slideпрымае ключавыя словы prevабо next, што змяняе становішча слайда адносна яго бягучага становішча. У якасці альтэрнатывы выкарыстоўвайце , data-slide-toкаб перадаць неапрацаваны індэкс слайда ў карусель data-slide-to="2", якая зрушвае пазіцыю слайда да пэўнага індэксу, які пачынаецца з 0.

Атрыбут data-ride="carousel"выкарыстоўваецца, каб пазначыць карусель як аніміраваную, пачынаючы з загрузкі старонкі. Яго нельга выкарыстоўваць у спалучэнні з (залішняй і непатрэбнай) відавочнай ініцыялізацыяй JavaScript той жа каруселі.

Праз JavaScript

Выклік каруселі ўручную з дапамогай:

$('.carousel').carousel()

Параметры

Параметры могуць быць перададзены праз атрыбуты дадзеных або JavaScript. Для атрыбутаў дадзеных дадайце назву опцыі да data-, як у data-interval="".

Імя Тып Па змаўчанні Апісанне
інтэрвал лік 5000 Колькасць часу затрымкі паміж аўтаматычным цыклам элемента. Калі false, карусель не будзе аўтаматычна працаваць.
клавіятура лагічны праўда Ці павінна карусель рэагаваць на падзеі клавіятуры.
паўза радок | лагічны "парыць"

Калі ўстаноўлена "hover", прыпыняе цыкл каруселі на mouseenterі аднаўляе цыкл на mouseleave. Калі зададзена значэнне false, навядзенне курсора на карусель не прыпыніць яе.

На сэнсарных прыладах, калі ўсталявана значэнне "hover", веласіпедны рух будзе прыпынены touchend(як толькі карыстальнік скончыць узаемадзеянне з каруселлю) на два інтэрвалы, перш чым аўтаматычна аднаўляцца. Звярніце ўвагу, што гэта дадатак да вышэйзгаданых паводзін мышы.

ездзіць радок ілжывы Аўтаматычнае прайграванне каруселі пасля таго, як карыстальнік уручную пераключае першы элемент. Калі "карусель", аўтаматычна запускае карусель пры загрузцы.
абгарнуць лагічны праўда Ці павінна карусель круціцца бесперапынна ці мець жорсткія прыпынкі.
дотык лагічны праўда Ці павінна карусель падтрымліваць узаемадзеянне правядзення пальцам улева/управа на прыладах з сэнсарным экранам.

Метады

Асінхронныя метады і пераходы

Усе метады API асінхронныя і пачынаюць пераход . Яны вяртаюцца да абанента, як толькі пачынаецца пераход, але да яго заканчэння . Акрамя таго, выклік метаду пераходнага кампанента будзе ігнаравацца .

Для атрымання дадатковай інфармацыі глядзіце нашу дакументацыю па JavaScript .

.carousel(options)

Ініцыялізуе карусель дадатковымі опцыямі objectі пачынае цыклічна перамяшчаць элементы.

$('.carousel').carousel({
  interval: 2000
})

.carousel('cycle')

Пераключаецца па элементах каруселі злева направа.

.carousel('pause')

Спыняе пераход каруселі паміж прадметамі.

.carousel(number)

Пераключае карусель на пэўны кадр (на аснове 0, падобна да масіва). Вяртаецца да абанента да таго, як будзе паказаны мэтавы элемент (г.зн. да таго , як slid.bs.carouselадбудзецца падзея).

.carousel('prev')

Пераход да папярэдняга элемента. Вяртаецца да абанента да таго, як будзе паказаны папярэдні элемент (г.зн. да таго , як slid.bs.carouselадбудзецца падзея).

.carousel('next')

Пераход да наступнага элемента. Вяртаецца да абанента да таго, як будзе паказаны наступны элемент (г.зн. да таго , як slid.bs.carouselадбудзецца падзея).

.carousel('dispose')

Разбурае карусель элемента.

Падзеі

Клас каруселі Bootstrap паказвае дзве падзеі для падлучэння да функцыянальнасці каруселі. Абедзве падзеі маюць наступныя дадатковыя ўласцівасці:

  • direction: Напрамак, у якім слізгае карусель ( "left"або "right").
  • relatedTarget: Элемент DOM, які ўстаўляецца на месца як актыўны элемент.
  • from: Індэкс бягучага элемента
  • to: Індэкс наступнага элемента

Усе падзеі каруселі запускаюцца ў самой каруселі (г.зн. у <div class="carousel">).

Тып падзеі Апісанне
slide.bs.carousel Гэта падзея спрацоўвае неадкладна, калі slideвыклікаецца метад асобніка.
slid.bs.carousel Гэта падзея запускаецца, калі карусель завяршае пераход слайдаў.
$('#myCarousel').on('slide.bs.carousel', function () {
  // do something…
})

Змяніць працягласць пераходу

Працягласць пераходу .carousel-itemможа быць зменена з дапамогай $carousel-transitionзменнай Sass перад кампіляцыяй або карыстацкіх стыляў, калі вы выкарыстоўваеце скампіляваны CSS. Калі ўжываецца некалькі пераходаў, пераканайцеся, што спачатку вызначаны пераход трансфармацыі (напрыклад, transition: transform 2s ease, opacity .5s ease-out).