Bliss.js предоставляет удобные методы для работы с классами элементов
DOM, упрощая процесс их добавления, удаления и переключения. Основной
метод для переключения классов — toggleClass. Он работает
на выбранных элементах и позволяет динамически изменять состояние
классов без необходимости писать сложные условные конструкции.
toggleClassСигнатура метода:
element.toggleClass(className, [force])
className — строка или несколько
имён классов, разделённых пробелом, которые необходимо
переключить.
force — необязательный булевый
параметр:
true — класс будет гарантированно добавлен.false — класс будет гарантированно удалён.Пример базового использования:
var btn = Bliss('#myButton');
btn.toggleClass('active');
В этом примере класс active добавляется к кнопке, если
его нет, и удаляется, если он уже присутствует.
Bliss.js позволяет передавать несколько классов через пробел:
var panel = Bliss('.panel');
panel.toggleClass('hidden highlighted');
Метод обработает каждый класс по отдельности, добавляя или удаляя их в зависимости от текущего состояния элемента.
Для более сложной логики можно передавать функцию вместо строки:
element.toggleClass(function(index, currentClass) {
return currentClass.includes('open') ? 'closed' : 'open';
});
Функция получает два аргумента:
index — позиция элемента в наборе
элементов.currentClass — текущий список классов
элемента.Возвращаемое значение функции определяет, какой класс будет переключён.
Bliss('.accordion-header').on('click', function() {
this.toggleClass('expanded');
this.nextElementSibling.toggleClass('visible');
});
Здесь при клике на заголовок аккордеона переключается класс
expanded у самого заголовка и класс visible у
контента.
Bliss('.tabs li').each(function(tab) {
tab.toggleClass('active', tab.dataset.selected === 'true');
});
Метод each проходит по каждому элементу коллекции, и
toggleClass применяет класс active только к
выбранным вкладкам.
toggleClass можно комбинировать с другими утилитами:
hasClass — проверка наличия
класса:if (!element.hasClass('visible')) {
element.toggleClass('visible');
}
addClass и removeClass —
ручное управление, если требуется более явная логика:element.removeClass('hidden').addClass('shown');
Bliss.js оптимизирован для работы с большим количеством элементов.
Метод toggleClass обрабатывает сразу все совпадающие
элементы, минимизируя количество операций с DOM. Для массовых изменений
рекомендуется:
open
и close.error, valid.toggleClass убедиться, что элемент
существует.is-active, is-hidden), чтобы облегчить чтение
кода.toggleClass, если можно
заранее вычислить результат и передать булево значение.toggleClass является мощным инструментом в арсенале
Bliss.js, позволяя управлять состояниями элементов эффективно и
лаконично, обеспечивая чистый и понятный код при работе с DOM.