Список констант и настроек

Dom7 — это лёгкая библиотека для работы с DOM в JavaScript, которая часто используется вместе с фреймворком Framework7, но при этом полностью самостоятельна. Основной функционал Dom7 сосредоточен вокруг работы с элементами страницы: выборка, манипуляции с атрибутами, события, анимации и классы. Для эффективного использования библиотеки важно понимать её константы и настройки, которые задают поведение и позволяют оптимизировать работу с элементами.


Основные константы 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 });

Итоговое применение констант и настроек

В совокупности, понимание этих констант и настроек позволяет:

  1. Эффективно создавать и управлять коллекциями элементов.
  2. Настраивать область поиска и методы обработки элементов.
  3. Контролировать поведение событий и анимаций.
  4. Сохранять совместимость с массивными методами JavaScript, что облегчает интеграцию Dom7 с существующим кодом.

Dom7 сохраняет баланс между лёгкостью и гибкостью за счёт минимального числа явных настроек и мощной работы с внутренними константами, что делает её удобной для быстрого прототипирования и полноценной разработки интерфейсов.