Стек изображений с шагами
Расширение ui.image-stack-steps
отображает и управляет стеками изображений с шагами. Каждый шаг включает заголовок, стек изображений и футер. Можно динамически добавлять, обновлять и удалять шаги.
Подключение
JS (ES6)
import { ImageStackSteps } from 'ui.image-stack-steps'; const options = { steps: [ { id: 'step1', header: { type: 'text', data: { text: 'Заголовок шага 1' } }, stack: { images: [ { type: 'image', data: { src: 'image1.jpg', title: 'Изображение 1' } } ], status: { type: 'ok' } }, footer: { type: 'text', data: { text: 'Футер шага 1' } } } ] }; const imageStack = new ImageStackSteps(options); imageStack.renderTo(document.getElementById('container'));
JS (ES5)
var ImageStackSteps = require('ui.image-stack-steps').ImageStackSteps; var options = { steps: [ { id: 'step1', header: { type: 'text', data: { text: 'Заголовок шага 1' } }, stack: { images: [ { type: 'image', data: { src: 'image1.jpg', title: 'Изображение 1' } } ], status: { type: 'ok' } }, footer: { type: 'text', data: { text: 'Футер шага 1' } } } ] }; var imageStack = new ImageStackSteps(options); imageStack.renderTo(document.getElementById('container'));
PHP
<php use Bitrix\Main\Loader; use Bitrix\Main\UI\Extension; Loader::includeModule('ui'); Extension::load('ui.image-stack-steps'); ?> <div id="container"><div> <script> BX.ready(function() { var options = { steps: [ { id: 'step1', header: { type: 'text', data: { text: 'Заголовок шага 1' } }, stack: { images: [ { type: 'image', data: { src: 'image1.jpg', title: 'Изображение 1' } } ], status: { type: 'ok' } }, footer: { type: 'text', data: { text: 'Футер шага 1' } } } ] }; var imageStack = new BX.UI.ImageStackSteps(options); imageStack.renderTo(document.getElementById('container')); }); </script>
Параметры
Основные параметры
Параметртип | Описание | Обяз. |
---|---|---|
stepsArray<StepType> | Массив шагов, которые будут отображаться в компоненте | Да |
Параметр StepType
Параметртип | Описание | Обяз. |
---|---|---|
idString | Уникальный идентификатор шага | Да |
progressBoxObject | Объект, описывающий прогресс-бокс и содержащий заголовок | Нет |
headerHeaderType | Заголовок шага, определяемый типом и данными | Да |
stackStackType | Стек изображений, содержащий изображения и их статус | Да |
footerFooterType | Футер шага, определяемый типом и данными | Да |
stylesObject | Стили для шага. Например, минимальная ширина | Нет |
Параметр HeaderType
Параметртип | Описание | Обяз. |
---|---|---|
typeString | Тип заголовка | Да |
dataObject | Данные заголовка | Да |
stylesObject | Стили заголовка | Нет |
Параметр StackType
Параметртип | Описание | Обяз. |
---|---|---|
imagesArray<ImageType> | Массив изображений | Да |
statusStackStatusType | Статус стека | Нет |
Параметр ImageType
Параметртип | Описание | Обяз. |
---|---|---|
typeString | Тип изображения | Да |
dataObject | Данные изображения | Да |
Параметр FooterType
Параметртип | Описание | Обяз. |
---|---|---|
typeString | Тип футера | Да |
dataObject | Данные футера | Да |
stylesObject | Стили футера | Нет |
Класс ImageStackSteps
Класс ImageStackSteps
предоставляет методы для управления стеками изображений и шагами. Методы позволяют динамически изменять шаги в компоненте.
Методы класса
Метод | Описание | Параметры | Возвращаемое значение |
---|---|---|---|
renderTo(node: HTMLElement) | Рендерит компонент в указанный DOM-элемент | node — DOM-элемент, в который будет отрисован компонент | — |
getSteps(): Array<StepType> | Возвращает массив текущих шагов. Каждый шаг возвращается как копия, чтобы избежать изменений исходных данных | — | Массив объектов StepType |
addStep(stepData: StepType): boolean | Добавляет новый шаг в стек. Если данные шага некорректны, шаг не будет добавлен | stepData — данные нового шага | true , если шаг успешно добавлен, иначе false |
updateStep(stepData: StepType, stepId: string): boolean | Обновляет данные шага с указанным stepId . Если данные некорректны, шаг не будет обновлен | stepData — новые данные шага.stepId — идентификатор шага, который нужно обновить | true , если шаг успешно обновлен, иначе false |
deleteStep(stepId: string): boolean | Удаляет шаг с указанным stepId | stepId — идентификатор шага, который нужно удалить | true , если шаг успешно удален, иначе false |
destroy() | Уничтожает компонент, освобождая ресурсы и отключая его от DOM | — | — |
Примеры использования
Простой стек с одним шагом
const options = { steps: [ { id: 'step1', header: { type: 'text', data: { text: 'Заголовок шага 1' } }, stack: { images: [ { type: 'image', data: { src: 'image1.jpg', title: 'Изображение 1' } } ], status: { type: 'ok' } }, footer: { type: 'text', data: { text: 'Футер шага 1' } } } ] }; const imageStack = new ImageStackSteps(options); imageStack.renderTo(document.getElementById('container'));
Как добавить шаг динамически
const newStep = { id: 'step2', header: { type: 'text', data: { text: 'Заголовок шага 2' } }, stack: { images: [ { type: 'image', data: { src: 'image2.jpg', title: 'Изображение 2' } } ], status: { type: 'wait' } }, footer: { type: 'text', data: { text: 'Футер шага 2' } } }; imageStack.addStep(newStep);
Дополнительная информация
- Расширение использует
EventEmitter
для уведомлений об изменениях. Например, можно подписаться на событиеUI.ImageStackSteps.onUpdateSteps
, чтобы отслеживать обновления шагов. - Для работы с расширением требуется подключение библиотек
main.core
,main.core.events
иui.vue3
. - Расширение поддерживает различные типы изображений, включая пользовательские аватары, иконки и счетчики.
- Для кастомизации внешнего вида можно использовать параметры
styles
в шагах, заголовках и футерах.
© «Битрикс», 2001-2025, «1С-Битрикс», 2025
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.