v-b-toggle — это упрощенная директива для переключения видимости сворачивания и боковых панелей, которая включает автоматическую обработку атрибутов Доступности WAI-ARIA.
Обзор
Директиву v-b-toggle можно использовать для интерактивных элементов, таких как кнопки, для переключения состояния видимости компонентов <b-collapse> и <b-sidebar>.
Помимо переключения видимости целевого компонента, директива автоматически обновляет атрибуты доступности ARIA для элемента, к которому она применяется, чтобы они отражали состояние видимости целевого компонента. Дополнительные сведения и предостережения смотрите в разделе ниже Специальные возможности.
Синтаксис и использование директив
Директива применяется к элементу или компоненту, который запускает видимость цели. Целевой компонент может быть указан (через его идентификатор) как модификатор(ы) директивы, аргумент директивы или как строка/массив, переданный в качестве значения директивы:
v-b-toggle.my-collapse - модификатор директивы (допускается несколько целей, каждый модификатор является идентификатором цели)
v-b-toggle="'my-collapse'" - значение директивы в виде строки идентификатора
v-b-toggle="'my-collapse1 my-collapse2'" - значение директивы в виде строки идентификаторов, разделенных пробелами v2.14.0+
v-b-toggle="['my-collapse1', 'my-collapse2']" - значение директивы в виде массива идентификаторов строк v2.14.0+
Модификаторы, аргумент и значение можно использовать одновременно при нацеливании на несколько компонентов.
Пример использования:
Сворачиваемая карточка
Привет мир!
Боковая панель
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis
in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
<template><div><divclass="mb-3"><b-buttonv-b-toggle.my-collapse>Переключатель свернутого содержимого</b-button><b-buttonv-b-toggle.my-sidebar>Переключатель боковой навигации</b-button></div><b-collapseid="my-collapse"><b-cardtitle="Сворачиваемая карточка">
Привет мир!
</b-card></b-collapse><b-sidebarid="my-sidebar"title="Боковая панель"shadow><divclass="px-3 py-2">
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis
in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
</div></b-sidebar></div></template>
Использование на ссылках
2.15.0+
При размещении директивы на ссылке (или компоненте, отображающем ссылку) целевой идентификатор можно также указать с помощью атрибута href.
Обратите внимание, что URL-адрес браузера изменится, и страница может прокручивать цель в поле зрения. Чтобы предотвратить изменение URL-адреса и прокрутку страницы, добавьте к ссылке @click.prevent.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis
in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
<template><div><divclass="mb-3"><av-b-togglehref="#example-collapse" @click.prevent>Переключатель свернутого содержимого</a><b-buttonv-b-togglehref="#example-sidebar" @click.prevent>Переключатель боковой навигации</b-button></div><b-collapseid="example-collapse"><b-cardtitle="Сворачиваемая карточка">
Привет мир!
</b-card></b-collapse><b-sidebarid="example-sidebar"title="Боковая панель"shadow><divclass="px-3 py-2">
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis
in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
</div></b-sidebar></div></template>
Скрытие и отображение содержимого в элементе триггера переключения
При использовании директивы v-b-toggle класс collapsed будет автоматически помещаться в элемент триггера, когда целевой компонент закрывается, и удаляется при открытии. Начиная с BootstrapVue 2.14.0, класс not-collapsed будет применяться, когда цель не закрыта.
Пример HTML-разметки:
<div><b-buttonv-b-toggle:my-collapse><spanclass="when-open">Закрыть</span><spanclass="when-closed">Открыть</span> Мое сворачиваемое содержимое
</b-button><b-collapseid="my-collapse"><!-- Content here --></b-collapse></div>
Чтобы элемент триггера не переключал цель, установите свойство disabled на <button>, <b-button>, или <b-link> (или компоненты, основанные на <b-link>) и событие переключения не будет отправлено в цель(и).
Доступность
Директива из соображений доступности должна быть размещена на интерактивном элементе, на который можно щелкнуть, таком как <button> или <b-button>, к которому могут легко получить доступ пользователи, использующие только клавиатуру, и пользователи программ чтения с экрана. К элементам, которые изначально не имеют роли доступности button (или link), будут применены атрибуты role="button" и tabindex="0", и будет создан соответствующий обработчик кликов. Поэтому настоятельно рекомендуетсяне размещать директиву на элементах управления формы, кроме кнопок.
Директива применяет и динамически обновляет следующие атрибуты ARIA в элементе триггера:
aria-controls - идентификаторы переключаемых компонентов сворачивания или боковой панели
aria-expanded - состояние видимости сворачивания или боковой панели (смотрите раздел предостережения ниже)
Предостережения с несколькими целями
Когда указано несколько целей, значение атрибута aria-expanded может быть неправильным, если отдельные целевые компоненты могут управлять своим свернутым состоянием независимо (либо с помощью v-model, либо других элементов управления с помощью директивы v-b-toggle, или видимость CSS).
Смотрите также
<b-collapse> Сворачиваемое содержимое с поддержкой аккордеона