Спиннеры можно размещать где угодно, включая внутренние кнопки, оповещения и даже занятый слот <b-table>
.
<div class="text-center">
<b-spinner label="Spinning"></b-spinner>
<b-spinner type="grow" label="Spinning"></b-spinner>
<b-spinner variant="primary" label="Spinning"></b-spinner>
<b-spinner variant="primary" type="grow" label="Spinning"></b-spinner>
<b-spinner variant="success" label="Spinning"></b-spinner>
<b-spinner variant="success" type="grow" label="Spinning"></b-spinner>
</div>
Типы спиннеров
Bootstrap включает в себя два типа спиннеров. Тип спиннера по умолчанию называется border
(граница вращающегося круга), а необязательный тип grow
(индикатор в стиле пульсатора).
Спиннер Border
Используйте спиннер типа border
по умолчанию для легкого индикатора загрузки.
<div>
<b-spinner label="Загрузка..."></b-spinner>
</div>
Спиннер Grow
Если вам не нравится спиннер border
, переключитесь на спиннер grow
, установив свойствоtype
на 'grow'
. Хотя технически он не вращается, он постоянно растет!
<div>
<b-spinner type="grow" label="Загрузка..."></b-spinner>
</div>
Цветовые варианты спиннера
Спиннеры используют currentColor
для своего цвета, что означает, что он наследует текущий цвет шрифта. Вы можете настроить цвет, используя стандартные варианты цвета текста, используя свойство variant
, или поместить классы или стили в компонент, чтобы изменить его цвет.
Свойство variant
переводит имя варианта в класс Bootstrap v4 .text-{variant}
, поэтому, если у вас есть настраиваемые варианты цвета текста, не стесняйтесь использовать их через свойство variant
.
<template>
<div>
<div class="text-center mb-3 d-flex justify-content-between">
<b-spinner
v-for="variant in variants"
:variant="variant"
:key="variant"
></b-spinner>
</div>
<div class="text-center d-flex justify-content-between">
<b-spinner
v-for="variant in variants"
:variant="variant"
:key="variant"
type="grow"
></b-spinner>
</div>
</div>
</template>
<script>
export default {
data() {
return {
variants: ['primary', 'secondary', 'danger', 'warning', 'success', 'info', 'light', 'dark']
}
}
}
</script>
Почему бы не использовать утилиты border-color
? Каждый спиннер border
указывает transparent
рамку по крайней мере для одной стороны, поэтому утилиты .border-{color}
переопределяют это.
Размер
Установите для свойства small
значение true
, чтобы сделать спиннер меньшего размера, который можно будет быстро использовать в других компонентах.
<div>
<b-spinner small label="Маленький спиннер"></b-spinner>
<b-spinner small label="Маленький спиннер" type="grow"></b-spinner>
</div>
Или используйте собственные стили CSS или встроенные стили, чтобы изменить размеры по мере необходимости.
<div>
<b-spinner style="width: 3rem; height: 3rem;" label="Large Spinner"></b-spinner>
<b-spinner style="width: 3rem; height: 3rem;" label="Large Spinner" type="grow"></b-spinner>
</div>
Выравнивание
Спиннеры в Bootstrap создаются с помощью rem
, currentColor
и display: inline-flex
. Это означает, что их можно легко изменить в размере, перекрасить и быстро выровнять.
Margin
Используйте утилиты для отступов, такие как .m-5
, чтобы упростить интервалы.
<div>
<b-spinner class="m-5" label="Занятой"></b-spinner>
</div>
Размещение
Используйте утилиты flexbox, утилиты float или классы утилит выравнивания текста, чтобы размещать спиннеры именно там, где они вам нужны в любой ситуации.
Flex
Использование флекс классов утилит:
<div>
<div class="d-flex justify-content-center mb-3">
<b-spinner label="Загрузка..."></b-spinner>
</div>
<div class="d-flex align-items-center">
<strong>Загрузка...</strong>
<b-spinner class="ml-auto"></b-spinner>
</div>
</div>
Floats
Использование флоат классов утилит:
<div class="clearfix">
<b-spinner class="float-right" label="Floated Right"></b-spinner>
</div>
Выравнивание текста
Использование классов утилит выравнивания текста:
<div class="text-center">
<b-spinner variant="primary" label="Text Centered"></b-spinner>
</div>
Спиннеры в кнопках
Используйте спиннеры внутри кнопок, чтобы указать, что действие в настоящее время обрабатывается или происходит. Вы также можете заменить текст метки из элемента счетчика и использовать текст кнопки по мере необходимости.
<div>
<b-button variant="primary" disabled>
<b-spinner small></b-spinner>
<span class="sr-only">Загрузка...</span>
</b-button>
<b-button variant="primary" disabled>
<b-spinner small type="grow"></b-spinner>
Загрузка...
</b-button>
</div>
Доступность спиннера
Поместите скрытый текст метки внутрь спиннера для пользователей программ чтения с экрана через свойство label
или слот label
. Содержимое будет помещено внутри спиннера, заключенного в элемент <span>
с классом sr-only
, что сделает метку доступной для пользователей программ чтения с экрана.
В целях доступности каждый счетчик будет автоматически иметь атрибут role="status"
при предоставлении метки. Вы можете легко настроить роль, если это необходимо, с помощью свойства role
. Указанная role
не будет применяться, если не указана метка.
Кроме того, когда метка не указана, счетчик автоматически получает атрибут aria-hidden="true"
, чтобы скрыть счетчик от пользователей программ чтения с экрана.
Смотрите также
Альтернативой компоненту <b-spinner>
являются анимированные иконки.