Преминете към основното съдържание Преминете към навигацията с документи
Check
in English

Спинери

Посочете състоянието на зареждане на компонент или страница с Bootstrap spinners, изградени изцяло с HTML, CSS и без JavaScript.

относно

„Spinners“ на Bootstrap могат да се използват за показване на състоянието на зареждане във вашите проекти. Те са създадени само с HTML и CSS, което означава, че нямате нужда от JavaScript, за да ги създадете. Ще ви е необходим обаче персонализиран JavaScript, за да превключите тяхната видимост. Техният външен вид, подравняване и оразмеряване могат лесно да бъдат персонализирани с нашите невероятни полезни класове.

За целите на достъпността всеки товарач тук включва role="status"и вложен <span class="visually-hidden">Loading...</span>.

Анимационният ефект на този компонент зависи от prefers-reduced-motionмедийната заявка. Вижте раздела за намалено движение в нашата документация за достъпност .

Граничен спинер

Използвайте граничните центрофуги за лек индикатор за зареждане.

Зареждане...
html
<div class="spinner-border" role="status">
  <span class="visually-hidden">Loading...</span>
</div>

Цветове

Граничният центрофуга използва currentColorза своя border-color, което означава, че можете да персонализирате цвета с помощните програми за цвят на текста . Можете да използвате някоя от нашите помощни програми за цвят на текста на стандартния въртящ се бутон.

Зареждане...
Зареждане...
Зареждане...
Зареждане...
Зареждане...
Зареждане...
Зареждане...
Зареждане...
html
<div class="spinner-border text-primary" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-secondary" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-success" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-danger" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-warning" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-info" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-light" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-dark" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
Защо не използвате border-colorпомощни програми? Всяка въртяща се граница определя transparentграница за поне едната страна, така че .border-{color}помощните програми ще отменят това.

Растяща спинера

Ако не харесвате граничен спинър, преминете към растежен спинър. Въпреки че технически не се върти, той расте многократно!

Зареждане...
html
<div class="spinner-grow" role="status">
  <span class="visually-hidden">Loading...</span>
</div>

Още веднъж, този спинер е изграден с currentColor, така че можете лесно да промените външния му вид с помощните програми за цвят на текста . Тук е в синьо, заедно с поддържаните варианти.

Зареждане...
Зареждане...
Зареждане...
Зареждане...
Зареждане...
Зареждане...
Зареждане...
Зареждане...
html
<div class="spinner-grow text-primary" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-secondary" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-success" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-danger" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-warning" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-info" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-light" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-dark" role="status">
  <span class="visually-hidden">Loading...</span>
</div>

Подравняване

Спинърите в Bootstrap са изградени с rems, currentColorи display: inline-flex. Това означава, че те могат лесно да бъдат преоразмерени, преоцветени и бързо подравнени.

Марж

Използвайте помощни програми за маржове като .m-5за лесно поставяне на разстояние.

Зареждане...
html
<div class="spinner-border m-5" role="status">
  <span class="visually-hidden">Loading...</span>
</div>

Поставяне

Използвайте помощни програми flexbox , плаващи помощни програми или помощни програми за подравняване на текст , за да поставите въртящи се върти точно там, където имате нужда от тях във всяка ситуация.

Flex

Зареждане...
html
<div class="d-flex justify-content-center">
  <div class="spinner-border" role="status">
    <span class="visually-hidden">Loading...</span>
  </div>
</div>
Зареждане...
html
<div class="d-flex align-items-center">
  <strong>Loading...</strong>
  <div class="spinner-border ms-auto" role="status" aria-hidden="true"></div>
</div>

Плувки

Зареждане...
html
<div class="clearfix">
  <div class="spinner-border float-end" role="status">
    <span class="visually-hidden">Loading...</span>
  </div>
</div>

Подравняване на текста

Зареждане...
html
<div class="text-center">
  <div class="spinner-border" role="status">
    <span class="visually-hidden">Loading...</span>
  </div>
</div>

Размер

Добавете .spinner-border-smи .spinner-grow-sm, за да направите по-малък спинър, който може бързо да се използва в други компоненти.

Зареждане...
Зареждане...
html
<div class="spinner-border spinner-border-sm" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow spinner-grow-sm" role="status">
  <span class="visually-hidden">Loading...</span>
</div>

Или използвайте персонализирани CSS или вградени стилове, за да промените размерите според нуждите.

Зареждане...
Зареждане...
html
<div class="spinner-border" style="width: 3rem; height: 3rem;" role="status">
  <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow" style="width: 3rem; height: 3rem;" role="status">
  <span class="visually-hidden">Loading...</span>
</div>

Бутони

Използвайте въртящи се бутони, за да посочите, че в момента се обработва или се извършва действие. Можете също така да размените текста от въртящия се елемент и да използвате текста на бутона, ако е необходимо.

html
<button class="btn btn-primary" type="button" disabled>
  <span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>
  <span class="visually-hidden">Loading...</span>
</button>
<button class="btn btn-primary" type="button" disabled>
  <span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>
  Loading...
</button>
html
<button class="btn btn-primary" type="button" disabled>
  <span class="spinner-grow spinner-grow-sm" role="status" aria-hidden="true"></span>
  <span class="visually-hidden">Loading...</span>
</button>
<button class="btn btn-primary" type="button" disabled>
  <span class="spinner-grow spinner-grow-sm" role="status" aria-hidden="true"></span>
  Loading...
</button>

CSS

Променливи

Добавен във v5.2.0

Като част от развиващия се подход на Bootstrap към CSS променливите, spinners вече използват локални CSS променливи на .spinner-borderи .spinner-growза подобрено персонализиране в реално време. Стойностите за CSS променливите се задават чрез Sass, така че персонализирането на Sass все още се поддържа.

Променливи на въртящия се контур:

  --#{$prefix}spinner-width: #{$spinner-width};
  --#{$prefix}spinner-height: #{$spinner-height};
  --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};
  --#{$prefix}spinner-border-width: #{$spinner-border-width};
  --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};
  --#{$prefix}spinner-animation-name: spinner-border;
  

Нарастващи променливи на спинера:

  --#{$prefix}spinner-width: #{$spinner-width};
  --#{$prefix}spinner-height: #{$spinner-height};
  --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};
  --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};
  --#{$prefix}spinner-animation-name: spinner-grow;
  

И за двата спинера се използват малки класове модификатори на спинер за актуализиране на стойностите на тези CSS променливи, ако е необходимо. Например, .spinner-border-smкласът прави следното:

  --#{$prefix}spinner-width: #{$spinner-width-sm};
  --#{$prefix}spinner-height: #{$spinner-height-sm};
  --#{$prefix}spinner-border-width: #{$spinner-border-width-sm};
  

Sass променливи

$spinner-width:           2rem;
$spinner-height:          $spinner-width;
$spinner-vertical-align:  -.125em;
$spinner-border-width:    .25em;
$spinner-animation-speed: .75s;

$spinner-width-sm:        1rem;
$spinner-height-sm:       $spinner-width-sm;
$spinner-border-width-sm: .2em;

Ключови кадри

Използва се за създаване на CSS анимации за нашите спинери. Включени в scss/_spinners.scss.

@keyframes spinner-border {
  to { transform: rotate(360deg) #{"/* rtl:ignore */"}; }
}
@keyframes spinner-grow {
  0% {
    transform: scale(0);
  }
  50% {
    opacity: 1;
    transform: none;
  }
}