⚙️

Кастомизация — продвинутые настройки

В этом разделе демонстрируются продвинутые возможности кастомизации XPopup: управление контейнером, прокруткой страницы, залипающей шапкой, адаптивным режимом и ограничением размеров.

prependTo — выбор контейнера #

По умолчанию XPopup вставляет разметку в <body>. Опция prependTo позволяет указать другой контейнер. Это полезно, если у вас есть модальный режим на整个 странице или особые требования к z-index.

↳ Контейнер для попапа

bodyScrollable — прокрутка страницы #

По умолчанию при открытии попапа прокрутка страницы блокируется. Опция bodyScrollable: true разрешает скроллить страницу при открытом попапе. Полезно для небольших уведомлений.

Попробуйте: откройте попап и попробуйте прокрутить страницу.

headerSticked — залипающая шапка #

Опция headerSticked: true заставляет шапку «прилипать» к верхней границе окна при прокрутке контента. Полезно для длинных попапов с важным заголовком.

Попробуйте: откройте попап и прокрутите контент вниз — шапка останется на месте.

responsive — адаптивный режим #

Опция responsive: true включает адаптивный режим для смартфонов (ширина экрана < 480px). В этом режиме окно занимает всю высоту экрана, убираются скругления, контент подстраивается под доступное пространство.

Попробуйте: откройте в инструментах разработчика режим эмуляции смартфона.

maxSize — ограничение размера #

Опция maxSize: 'screen' гарантирует, что окно никогда не будет больше размеров экрана (viewport'а). Это предотвращает появление ненужных отступов и двойного скролла.

Автоматически включается, если заданы maxHeight='100%' и maxWidth='100%'.

Комбинация настроек #

Все опции кастомизации можно комбинировать для создания оптимального UX. Ниже пример с залипающей шапкой, адаптивным режимом и ограничением размера.

Сводная таблица опций кастомизации

Опция Тип По умолчанию Описание
prependTo string 'body' CSS-селектор контейнера для вставки попапа
bodyScrollable boolean false Разрешить прокрутку страницы при открытом попапе
headerSticked boolean false Залипающая шапка при прокрутке контента
responsive boolean false Адаптивный режим для экранов < 480px
maxSize string|null null Ограничение размера: 'screen' или null