classList.toggle() в JavaScript
Метод classList.toggle() переключает CSS-класс DOM-элемента. Если класса нет, метод добавит его. Если класс уже есть, метод удалит его.
Переключение класса
<button class="menu-button">Меню</button>
const menuButton = document.querySelector('.menu-button');
const isOpen = menuButton.classList.toggle('is-open');
В этом примере у кнопки не было класса is-open, поэтому он будет добавлен, а переменная isOpen получит значение true. При следующем вызове класс удалится, а метод вернёт false.
Синтаксис метода: element.classList.toggle(‘имя-класса’).
Второй аргумент
Вторым аргументом можно явно задать нужное состояние класса.
menuButton.classList.toggle('is-open', true); // добавить класс
menuButton.classList.toggle('is-open', false); // удалить класс
Если передать true, класс будет у элемента. Если передать false, класс будет удалён. Такой вариант удобен, когда нужное состояние уже известно. Для обычного добавления или удаления также можно использовать classList.add() и classList.remove().
Второй аргумент - не второй CSS-класс, а булево значениеtrueилиfalse.
Итого
classList.toggle() меняет наличие класса и возвращает его состояние после вызова. Без второго аргумента метод переключает класс, а с true или false задаёт его состояние явно.