Dom7 — это лёгкая библиотека для работы с DOM в JavaScript, которая часто используется вместе с фреймворком Framework7, но при этом полностью самостоятельна. Основной функционал Dom7 сосредоточен вокруг работы с элементами страницы: выборка, манипуляции с атрибутами, события, анимации и классы. Для эффективного использования библиотеки важно понимать её константы и настройки, которые задают поведение и позволяют оптимизировать работу с элементами.
Dom7 использует несколько ключевых констант, которые встречаются в коде и определяют базовую логику работы с элементами.
1. Dom7
Это базовый объект библиотеки, который на самом деле является
обёрткой над массивом элементов. При вызове функции
Dom7(selector) возвращается объект, поддерживающий все
методы библиотеки.
var $$ = Dom7;
var elements = $$('.item'); // Выбор всех элементов с классом "item"
2. window.Dom7
Константа, которая позволяет работать с Dom7 глобально. Если
подключить библиотеку через <script>, доступ к Dom7
можно получить напрямую через window.Dom7:
var $elements = window.Dom7('.button');
3. document и window как базовые
контексты
Хотя это не собственные константы Dom7, библиотека активно использует
эти объекты для работы с DOM. Многие методы Dom7 опираются на
document.querySelectorAll и свойства
window.
Dom7 не требует обширной конфигурации, но несколько моментов задаются implicit и могут быть переопределены:
1. Контекст поиска
По умолчанию Dom7 ищет элементы в контексте всего
документа (document). Можно ограничить область поиска:
var container = document.querySelector('.container');
var items = $$('.item', container); // Поиск внутри container
2. Поддержка NodeList и массивов
Dom7 автоматически обрабатывает NodeList, массивы
DOM-элементов и отдельные элементы, превращая их в объект Dom7. Это
позволяет применять методы библиотеки без дополнительных проверок
типов:
var nodeList = document.querySelectorAll('.item');
var items = $$(nodeList);
3. Работа с HTML-строками
Dom7 позволяет создавать элементы из HTML-строк напрямую, без
необходимости вручную использовать innerHTML:
var newElement = $$('<div class="new-item">Текст</div>');
document.body.append(newElement[0]);
Dom7 содержит несколько внутренних констант, которые обычно не используются напрямую, но определяют работу методов:
_arrayMethods — массив методов Array,
которые переопределяются для объектов Dom7 (forEach,
map, filter и т.д.). Это позволяет применять
стандартные массивные методы к объектам Dom7._selector — хранит исходный селектор,
использованный при создании объекта, что облегчает дебаг и повторное
использование выборки._length — свойство, указывающее
количество элементов в объекте Dom7. Оно наследуется от массива и
позволяет использовать цикл по элементам напрямую.var items = $$('.item');
console.log(items.length); // Количество элементов
Dom7 позволяет работать с событиями на уровне всей коллекции элементов, а также задавать поведение событий через настройки:
eventType — тип события
('click', 'input', 'change' и
др.).eventHandler — функция-обработчик
события.capture — логическое значение,
указывающее, будет ли использоваться фазовый режим capture
(по умолчанию false).once — если true,
обработчик выполнится только один раз.Пример использования:
$$('.button').on('click', function (e) {
console.log('Кнопка нажата');
}, { once: true });
Dom7 интегрируется с CSS-анимациями и позволяет управлять стилями
через методы .css(), .show(),
.hide(). Некоторые важные моменты:
duration — длительность анимации (если
используется кастомная функция).display — тип отображения при показе
элемента (block, flex, inline и
др.).visibility — можно управлять скрытием
элементов через hidden или visible.$$('.box').css({ display: 'flex', opacity: 0.5 });
В совокупности, понимание этих констант и настроек позволяет:
Dom7 сохраняет баланс между лёгкостью и гибкостью за счёт минимального числа явных настроек и мощной работы с внутренними константами, что делает её удобной для быстрого прототипирования и полноценной разработки интерфейсов.