Skip to content

CdsSlideView

Слайд-вью показывает один слайд из набора и переключает их с анимацией сдвига: стрелки, свайпы и v-model листают вперёд и назад. Это основа для каруселей и пошаговых интерфейсов — на слайд-вью построен CdsCarousel.

Storybook GitLab
Покрытие тестами: тестов нет

У компонента пока нет автотестов: поведение проверено только вручную.

API в спеках
0 / 34 пропсы, события, слоты и exposed, у которых есть тест
Тест-кейсы
0 юнит · 0 браузерных
Покрытие кода
6.2% строк · 0% ветвей замер v4.0.0-alpha.13
A11y (axe)
1 рекомендаций в 11 историях замер v4.0.0-alpha.11

Для карусели изображений с точками-делимитерами и автопрокруткой возьмите готовый CdsCarousel, для разделов с панелью навигации — CdsTabs, а для ленты, где видно сразу несколько элементов, — CdsSlideGroup.

Анатомия ​

Контейнер показывает один активный слайд CdsSlideViewItem, стрелки по краям листают к соседним — их включает проп show-arrows. v-model хранит индекс активного слайда — или значение из пропа value слайда, если он задан.

Вариации ​

Стрелки ​

По умолчанию стрелок нет — слайды листаются свайпом на тач-устройствах или программно через v-model. Проп show-arrows включает стрелки: true показывает их всегда, "hover" — только при наведении на слайд. Вместе со стрелками появляется и навигация с клавиатуры. Свайп отключается через :touch="false", иконки стрелок меняются пропами prev-icon и next-icon.

Sandbox Storybook

Вертикальные стрелки ​

Проп vertical-arrows собирает включённые через show-arrows стрелки в колонку у края слайда: true или 'left' — слева, 'right' — справа.

Sandbox Storybook

Непрерывное листание ​

Проп continuous замыкает слайды в кольцо: после последнего идёт первый. Без него на крайних слайдах соответствующая стрелка скрывается.

Sandbox Storybook

Направление ​

Проп direction="vertical" двигает слайды по вертикали — вместе с анимацией меняются и клавиши навигации: вместо ← / → работают ↑ / ↓.

Sandbox Storybook

Переходы ​

Проп crossfade заменяет сдвиг плавным растворением — подходит, когда слайды не выстроены в последовательность. У отдельного CdsSlideViewItem анимация настраивается пропами transition и reverse-transition: имя своей transition-анимации или false, чтобы отключить. Контент слайда рендерится при первом показе; проп eager рендерит его сразу — полезно для SEO.

Sandbox Storybook

Слоты ​

СлотОписание
defaultСлайды CdsSlideViewItem
prev, nextСвои кнопки листания; получают props с onClick и aria-label
additionalКонтент после слайдов: индикаторы, счётчик, подписи

Слот additional получает group с методами выбора — но чаще достаточно внешнего v-model, как в демо с точками-индикаторами.

Sandbox Storybook

Рекомендации ​

Сценарии использования ​

Пошаговая форма ​

Шаги анкеты переключаются кнопками через v-model: стрелки не включаем, а свайпы гасим через :touch="false" — движение только через «Назад» и «Далее». Высота контейнера анимируется под контент активного шага автоматически.

Sandbox Storybook

Отзывы клиентов ​

Цитаты не выстроены в последовательность, поэтому вместо сдвига — crossfade. Стрелки появляются при наведении (show-arrows="hover"), позицию показывает счётчик в слоте additional, а continuous листает отзывы по кругу.

Sandbox Storybook

Лента событий ​

Компактный виджет с вертикальным листанием: direction="vertical" двигает события снизу вверх, vertical-arrows="right" собирает стрелки в колонку у правого края.

Sandbox Storybook

API ​

CdsSlideView ​

Пропсы

ИмяТипПо умолчаниюОписание
continuousboolean | undefined—Зацикливает перелистывание: с последнего слайда переход ведёт на первый и наоборот
crossfadeboolean | undefined—Слайды сменяются плавным перекрестным затуханием вместо сдвига
direction"horizontal" | "vertical" | undefined'horizontal'Переключение между горизонтальным или вертикальным отображением.
disabledboolean | null | undefinednullЗаблокированное состояние
mandatoryboolean | "force" | undefined—Обязательный выбор хотя бы одного элемента
maxnumber | undefined—Максимальное количество выбираемых элементов
modelValueany—Значение выбранных элементов группы
multipleboolean | undefined—Разрешить множественный выбор
nextIconIconValue | undefined'chevron-right'Иконка кнопки перехода к следующему слайду
prevIconIconValue | undefined'chevron-left'Иконка кнопки перехода к предыдущему слайду
requiredboolean | "force" | undefined—Обязательный выбор хотя бы одного элемента
reverseboolean | undefined—Инвертирует направление анимации перехода между слайдами
selectedClassstring | undefined—CSS класс для выбранного состояния
showArrowsstring | boolean | undefined—Показывает стрелки навигации. 'hover' — только при наведении на компонент
tagstring | JSXComponent<any> | undefined'div'Пользовательский HTML-тег для отображения
themestring | undefined—Тема компонента
touchboolean | TouchHandlers | undefined—Управление перелистыванием свайпом: false отключает жесты, объект задаёт собственные обработчики касаний
transitionDurationnumber | undefined—Длительность анимации перехода между слайдами в миллисекундах
verticalArrowsboolean | "left" | "right" | undefined—Размещает стрелки навигации вертикально: 'left' или 'right' — сторона, true — сторона по умолчанию

События

ИмяТипОписание
update:modelValue[]Сработало при смене активного слайда. Передаёт значение нового активного слайда

Слоты

ИмяТипОписание
additional{ group: GroupProvide; }Дополнительный контент поверх слайдов — например точки-индикаторы или собственная навигация
default{ group: GroupProvide; }Слайды. В параметрах — состояние группы для управления активным слайдом
next{ props: ControlProps; }Кнопка перехода к следующему слайду. В параметрах — готовые пропсы для своей кнопки
prev{ props: ControlProps; }Кнопка перехода к предыдущему слайду. В параметрах — готовые пропсы для своей кнопки

Exposed

ИмяТипОписание
groupGroupProvideСостояние группы слайдов: список элементов, активный слайд и методы переключения.

CdsSlideViewItem ​

Пропсы

ИмяТипПо умолчаниюОписание
disabledboolean | null | undefinednullЗаблокированное состояние
eagerboolean | undefined—Принудительно рендерит содержимое компонента при его использовании. Это полезно, если у вас есть контент, который не отображается в DOM, но который необходимо проиндексировать для SEO.
reverseTransitionstring | boolean | undefined—Переход при показе слайда в обратном направлении. Имя transition-компонента или false, чтобы отключить анимацию
selectedClassstring | undefined—CSS класс для выбранного состояния
transitionstring | boolean | undefined—Переход при показе слайда в прямом направлении. Имя transition-компонента или false, чтобы отключить анимацию
valueany—Значение компонента в группе

События

ИмяТипОписание
group:selected[value: { value: boolean; }]Сработало при выборе слайда в группе. value — стал ли слайд активным

Слоты

ИмяТипОписание
defaultanyКонтент слайда

Exposed

ИмяТипОписание
groupItemGroupItemProvideСостояние слайда в группе: выбран ли он, его значение и метод переключения.