Source

Карусель

Карусель сыяктуу элементтерди (сүрөттөрдү же тексттин слайддарын) айланып өтүү үчүн слайдшоу компоненти.

Бул кантип иштейт

Карусель - бул CSS 3D трансформациялары жана бир аз JavaScript менен курулган бир катар мазмундар боюнча велосипед тебүү үчүн слайдшоу. Ал бир катар сүрөттөр, текст же ыңгайлаштырылган белгилөө менен иштейт. Ал ошондой эле мурунку/кийинки башкаруу жана көрсөткүчтөрдү колдоону камтыйт.

Page Visibility API колдоого алынган браузерлерде веб-баракча колдонуучуга көрүнбөй калганда (мисалы, серепчинин өтмөгү жигердүү эмес, серепчи терезеси кичирейтилген ж.

Бул компоненттин анимация эффектиси prefers-reduced-motionмедиа суроосуна көз каранды. Биздин жеткиликтүүлүк документтерибиздин кыскартылган кыймыл бөлүмүн караңыз .

Эсиңизде болсун, уя салынган карусельдер колдоого алынбайт жана каруселдер жалпысынан жеткиликтүүлүк стандарттарына туура келбейт.

Акырында, эгер сиз биздин JavaScript булактан куруп жатсаңыз, андаutil.js .

Мисал

Каруселдер слайддын өлчөмдөрүн автоматтык түрдө нормалдаштырбайт. Ошентип, мазмунду туура өлчөмдөрдө кошумча утилиталарды же ыңгайлаштырылган стилдерди колдонуу керек болушу мүмкүн. Каруселдер мурунку/кийинки башкаруу элементтерин жана көрсөткүчтөрдү колдогону менен, алар так талап кылынбайт. Кошуңуз жана өзүңүз каалагандай ыңгайлаштырыңыз.

Класс .activeслайддардын бирине кошулушу керек, антпесе карусель көрүнбөйт. Кошумча башкаруу элементтери үчүн уникалдуу идентификаторду коюуну унутпаңыз .carousel, айрыкча бир баракта бир нече карусель колдонуп жатсаңыз. Башкаруу жана көрсөткүч элементтеринде элементтин идентификаторуна дал келген data-targetатрибут (же шилтемелер үчүн) болушу керек .href.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 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>Nulla vitae elit libero, a pharetra augue mollis interdum.</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>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</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>Praesent commodo cursus magna, vel scelerisque nisl consectetur.</p>
      </div>
    </div>
  </div>
  <a class="carousel-control-prev" href="#carouselExampleCaptions" 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="#carouselExampleCaptions" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>

Crossfade

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

Кийинки нерсеге автоматтык түрдө өтүү ортосундагы кечигүү убактысын өзгөртүү үчүн aга data-interval=""кошуңуз ..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ачкыч сөздөрүн кабыл алат , бул слайддын абалын учурдагы абалына карата өзгөртөт. Же болбосо, слайддын абалын карусельге өткөрүү үчүн колдонуңуз , ал слайддын абалын менен башталган белгилүү бир индекске жылдырат .prevnextdata-slide-todata-slide-to="2"0

data-ride="carousel"Атрибуту карусельди бет жүктөлгөндөн баштап анимациялоочу катары белгилөө үчүн колдонулат . Эгер колдонбосоңузdata-ride="carousel"Эгер сиз каруселиңизди инициализациялоо үчүнАны бир эле каруселдин ачык-айкын JavaScript инициализациясы менен бирге колдонууга болбойт.

JavaScript аркылуу

Каруселге кол менен чалуу:

$('.carousel').carousel()

Параметрлер

Параметрлер маалымат атрибуттары же JavaScript аркылуу берилиши мүмкүн. Дайындардын атрибуттары үчүн параметрдин атын data-, сыяктуу эле кошуңуз data-interval="".

аты Type Демейки Description
интервал саны 5000 Нерсени автоматтык түрдө айлантуунун ортосундагы кечигүү убактысы. Эгер жалган болсо, карусель автоматтык түрдө айланбайт.
клавиатура логикалык чын Карусель клавиатурадагы окуяларга жооп бериши керекпи.
тыныгуу string | логикалык "коп"

Эгер коюлса "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">.

Окуя түрү Description
слайд.б.карусель Бул окуя slideинстанция ыкмасы чакырылганда дароо күйөт.
slid.bs.carousel Бул иш-чара карусель слайдды өткөрүп бүткөндөн кийин өчүрүлөт.
$('#myCarousel').on('slide.bs.carousel', function () {
  // do something...
})

Өтүү мөөнөтүн өзгөртүү

Өткөөлдүн узактыгы компиляциядан мурун Sass өзгөрмөсү .carousel-itemменен өзгөртүлүшү мүмкүн $carousel-transitionже эгерде сиз компиляцияланган CSS колдонуп жатсаңыз, ыңгайлаштырылган стилдер. Эгер бир нече өтүү колдонулса, адегенде трансформацияга өтүү аныкталганын текшериңиз (мисалы. transition: transform 2s ease, opacity .5s ease-out).