Аналоги Popper.js

Bartender

macOS

Bartender — небольшая JavaScript-библиотека для управления позиционированием всплывающих элементов интерфейса (подсказок, контекстных меню, тултипов и пр.), выступающая аналогом Popper.js; она предоставляет API для вычисления оптимального расположения попов по отношению к целевым элементам с учётом доступного места, ограничений по экрану и смещений, поддерживает привязку к различным крайним точкам, обновление позиции при изменении размеров или прокрутке и расширяемую систему модулей для кастомизации поведения и стилей.

Popper.js

Бесплатно
Открытый исходный код

Сайт: popper.js.org/docs

Popper.js — это лёгкая JavaScript-библиотека, предназначенная для точного и надёжного позиционирования всплывающих элементов (попперов) на веб-странице. К таким элементам относятся подсказки, поповеры, выпадающие меню и другие интерфейсные компоненты, которые должны отображаться рядом с определённым элементом, например, кнопкой или ссылкой. Основная цель Popper.js — вычислить оптимальное положение всплывающего элемента, учитывая размеры и положение на странице, а также возможные ограничения, такие как края экрана или контейнеры с прокруткой.

Библиотека была разработана Федерико Зиволо и впервые представлена в 2016 году. Она быстро стала стандартом де-факто для позиционирования всплывающих элементов в современных веб-приложениях. Popper.js используется в таких популярных фреймворках, как Bootstrap, и интегрируется с различными библиотеками пользовательских интерфейсов, включая React и Vue. Важно отметить, что Popper.js не является библиотекой для создания всплывающих подсказок или поповеров, а представляет собой универсальный механизм позиционирования, который может быть использован для реализации различных интерфейсных компонентов.

С момента своего появления Popper.js претерпел несколько изменений и улучшений. В версии 2.x была представлена модульная архитектура, основанная на модификаторах, что позволило значительно расширить возможности настройки поведения и внешнего вида всплывающих элементов. Библиотека не имеет зависимостей от других библиотек, таких как jQuery, и обеспечивает высокую производительность и совместимость с различными браузерами и устройствами.

  • Модульная архитектура: Popper.js использует систему модификаторов, позволяющую гибко настраивать поведение всплывающих элементов, включая их позицию, отступы, повороты и другие параметры.
  • Поддержка различных стратегий позиционирования: библиотека позволяет выбирать между абсолютным и фиксированным позиционированием, а также автоматически адаптирует положение элемента в зависимости от доступного пространства.
  • Автоматическое управление переполнением: Popper.js учитывает размеры экрана и контейнеров, предотвращая выход всплывающего элемента за пределы видимой области и обеспечивая его корректное отображение.
  • Интеграция с фреймворками: библиотека легко интегрируется с популярными JavaScript-фреймворками, такими как React, Vue и Angular, а также с библиотеками пользовательских интерфейсов, включая Bootstrap.
  • Поддержка Shadow DOM: Popper.js корректно работает с элементами, использующими Shadow DOM, что расширяет возможности её применения в сложных веб-приложениях.
  • Минимальный размер: библиотека имеет небольшой размер (~3 кБ), что способствует быстрой загрузке страниц и экономии трафика.
  • Отсутствие внешних зависимостей: Popper.js не требует наличия других библиотек, таких как jQuery или Lodash, что упрощает её использование и уменьшает объём загружаемого кода.
  • Поддержка различных браузеров: библиотека обеспечивает корректную работу во всех современных браузерах, включая Chrome, Firefox, Safari и Internet Explorer 11.
  • Активное сообщество и поддержка: Popper.js имеет активное сообщество разработчиков и пользователей, что обеспечивает регулярные обновления, исправления ошибок и улучшения функциональности.
Подробнее