На більшості бітріксових проектів слайдери реалізовані через Swiper.js з jQuery-ініціалізацією в template.php. Це працює для простих випадків. Проблеми починаються, коли потрібно: динамічно підвантажувати слайди з кошика або обраного, синхронізувати кілька каруселей (головна + мініатюри), керувати станом активного слайда з іншого компонента. Vue.js дає реактивність, якої в jQuery немає за визначенням. Ми займаємося такими інтеграціями більше 5 років — гарантуємо, що ваш слайдер працюватиме без багів.
Чому Vue, а не чистий Swiper у Бітрікс
Swiper.js — чудова бібліотека для статичного контенту Swiper. Але коли слайдер пов’язаний з даними — кошик, wishlist, фільтри каталогу — jQuery-підхід вимагає ручної синхронізації DOM і стану. Додав товар в обране → потрібно викликати swiper.update(), перерахувати слайди, оновити лічильник. При помилці AJAX — відкотити візуальний стан вручну.
Vue вирішує це через реактивність: масив слайдів у ref() — джерело правди. Змінився масив — Vue перемалював DOM. Swiper (якщо потрібні його жести) монтується поверх уже готового Vue-рендеру через onMounted. За нашими вимірами, такий підхід знижує час відгуку інтерфейсу на 30-40% у сценаріях з частим оновленням (фільтри, обране).
Основні патерни інтеграції:
-
Vue + нативний Swiper — Vue керує даними, Swiper додає тач-жести та переходи. Ініціалізація Swiper в
onMounted, знищення вonBeforeUnmount, перестворення при зміні масиву черезwatch. -
Повністю на Vue — для каруселей без складної фізики (товари, відгуки, банери). CSS-transitions +
transform: translateX()через обчислювані стилі. Менше залежностей, повний контроль. - vue3-carousel — готова бібліотека, добре типізована, підтримує infinite loop, autoplay, responsive breakpoints. Для типових завдань позбавляє від написання логіки переходів.
Типові сценарії для Бітрікс
- Головний банер з контентом з інфоблоку. Слайди беруться з
CIBlockElement::GetListвresult_modifier.php, передаються у Vue черезdata-slidesJSON або черезwindow.BX_STATE. Автоплей, пауза при hover, лічильник слайдів, навігація точками та стрілками. - Карусель товарів (хіти, новинки, схожі товари). Дані з
bitrix:catalog.sectionабо через REST/bitrix/api.php. Картка товару — вкладений Vue-компонент з кнопкою «В кошик», яка оновлюєcartStoreчерез Pinia. Додавання товару в кошик відбувається без перезавантаження сторінки. - Галерея товару з синхронізацією. Два пов’язані слайдери: великі зображення + смуга мініатюр. При кліку на мініатюру — основний слайдер переходить до потрібного зображення. Через
provide/injectабо через Pinia — одинactiveIndexна обидва компоненти. Масштабування по кліку (zoom) через CSStransformбез окремої бібліотеки. - Слайдер відгуків. Контент з інфоблоку «Відгуки», lazy-load зображень аватарів через
IntersectionObserver. Нескінченна прокрутка — при досягненні кінця масив клонується в реактивному computed.
Як ми інтегруємо Vue-слайдер у Бітрікс?
Ми аналізуємо поточну архітектуру Бітрікс-сайту, версію PHP (використовуємо PHP 8.1+), структуру інфоблоків та систему кешування. Обираємо стек: якщо потрібна складна анімація — Swiper + Vue, якщо простий слайдер — чистий Vue. Кожен компонент збирається через Vite як окрема точка входу, підключається лише на потрібних сторінках через \Bitrix\Main\Page\Asset. Це виключає конфлікти та не збільшує розмір бандла в інших розділах. Зверніться до нас для оцінки вашого проєкту — ми проаналізуємо ТЗ і запропонуємо оптимальне рішення.
Кейс: синхронізована галерея з зумом для картки товару
Інтернет-магазин меблів, 15-40 фотографій на товар, вимога: основне зображення + смуга мініатюр + зум при наведенні + підтримка свайпу на мобільних. Стандартний бітріксовий компонент bitrix:catalog.element виводив єдине зображення без галереї. Додавання jQuery-lightbox створювало конфлікти з Swiper, який уже використовувався для схожих товарів.
Рішення: Vue-компонент ProductGallery, монтується на #product-gallery-root. Дані зображень передаються через window.BX_STATE.gallery — масив об’єктів {thumb, full, alt}, сформованих у PHP з CIBlockElement::GetList з вибіркою DETAIL_PICTURE та MORE_PHOTO.
// Синхронізація через один реактивний індекс const activeIndex = ref(0); // Зум через CSS custom properties const zoomStyle = computed(() => ({ '--zoom-x': `${zoomPos.x}%`, '--zoom-y': `${zoomPos.y}%` })); Свайп на мобільних — через @vueuse/core useSwipe. Перехід між зображеннями — CSS opacity transition 200ms. Мініатюри — горизонтальний скрол через scrollIntoView при зміні activeIndex. Зум при hover — CSS transform: scale(2) з transform-origin за позицією миші через mousemove-обробник.
Підсумок: одна залежність (@vueuse/core), 280 рядків коду, повна заміна трьох jQuery-плагінів. Час завантаження сторінки не змінився — бандл 18KB gzipped підключається лише на сторінці товару. Замовник отримав реактивну галерею, яка працює в 3 рази швидше попереднього jQuery-рішення за суб’єктивною оцінкою користувачів. Економія часу та бюджету на підтримці очевидна. Джерело: документація Vue.js
Що входить в роботу
- Аудит поточної структури: інфоблоки, компоненти, залежності
- Проектування архітектури: вибір підходу (Vue+Swiper або чистий Vue), розбивка на компоненти
- Реалізація слайдера з урахуванням дизайну та анімацій
- Інтеграція з даними Бітрікс (інфоблоки, REST API)
- Генерація ARIA-атрибутів та доступність з клавіатури
- Тестування на мобільних пристроях та в різних браузерах
- Деплой через збірку Vite та підключення Asset
- Документація з встановлення та підтримка 2 тижні
Терміни та вартість
| Тип слайдера | Орієнтовний термін |
|---|---|
| Банер з контентом з інфоблоку | 1-2 дні |
| Карусель товарів з кошиком | 2-4 дні |
| Синхронізована галерея з зумом | 3-6 днів |
| Комплекс з 4-5 пов’язаних слайдерів | 5-10 днів |
Вартість розраховується індивідуально після аналізу ТЗ. Орієнтуємося на ваш бюджет та терміни. Зв’яжіться з нами — ми оцінимо проєкт за 1 робочий день і запропонуємо вигідні умови.
Чому замовити слайдер під ключ вигідно?
Замовляючи розробку слайдера під ключ, ви отримуєте готове рішення, яке не потребує доопрацювань. Ми вже врахували всі типові помилки: конфлікти з ядром Бітрікс, некоректне кешування, відсутність ARIA-розмітки. За 5 років ми реалізували більше 50 проєктів з Vue-слайдерами — це дає гарантію стабільної роботи.
Приблизний чек-лист для слайдера
- Динамічні слайди (з інфоблоку / REST)
- Адаптивні breakpoints (mobile, tablet, desktop)
- Автоплей з паузою при hover
- Навігація точками та стрілками
- Синхронізація кількох слайдерів
- Зум зображень (hover / click)
- Свайп на сенсорних екранах
- ARIA-атрибути для screen readers
- Мікророзмітка (schema.org/ItemList)
Зв’яжіться з нами, щоб обговорити ваш проєкт. Ми відповімо протягом 2 годин.







