Zepto.js предоставляет компактный и удобный API для работы с DOM, включая управление видимостью элементов на странице. В отличие от jQuery, Zepto ориентирован на мобильные устройства и имеет минимальный вес, при этом сохраняя большинство базовых методов для манипуляции DOM, включая эффекты отображения.
Базовые методы для управления видимостью — это .show() и
.hide(). Они изменяют CSS-свойство display
выбранных элементов.
// Скрытие элемента
$('#element').hide();
// Отображение элемента
$('#element').show();
.hide() автоматически сохраняет текущее значение
display в памяти, чтобы при последующем вызове
.show() элемент отображался корректно..show() восстанавливает сохранённое значение
display, если оно было установлено до скрытия.Метод .toggle() позволяет переключать видимость элемента
без необходимости вручную проверять его текущее состояние.
$('#element').toggle();
Если элемент видим, он будет скрыт, если скрыт — станет видимым.
Метод .toggle() также может принимать булевый
аргумент для явного указания состояния:
$('#element').toggle(true); // показать элемент
$('#element').toggle(false); // скрыть элемент
Zepto поддерживает базовые эффекты плавного появления и исчезновения
с помощью методов .fadeIn(), .fadeOut() и
.fadeToggle(). Эти методы изменяют прозрачность элемента
(opacity) и при необходимости свойство
display.
// Плавное скрытие элемента
$('#element').fadeOut(400); // 400 мс
// Плавное отображение элемента
$('#element').fadeIn(400);
// Переключение видимости с анимацией
$('#element').fadeToggle(400);
'fast' или
'slow'), второй — опциональная функция обратного вызова
после завершения анимации..fadeIn() и .fadeOut() не изменяют
размеры элемента, а только его прозрачность и видимость.visibilityВ Zepto можно управлять не только display, но и
visibility. Для этого используется метод
.css():
// Сделать элемент невидимым, но сохранить место на странице
$('#element').css('visibility', 'hidden');
// Вернуть видимость
$('#element').css('visibility', 'visible');
Отличие от .hide() заключается в том, что элемент
остаётся в потоке документа и занимает место, но становится невидимым
для пользователя.
Часто требуется сочетать разные методы для более сложного поведения. Например, плавное скрытие с последующим удалением из DOM:
$('#element').fadeOut(300, function() {
$(this).remove();
});
В данном примере сначала выполняется анимация исчезновения за 300 мс,
после чего элемент удаляется из DOM с помощью
.remove().
Для проверки текущего состояния элемента в Zepto используют метод
.is() с псевдоклассом :visible:
if ($('#element').is(':visible')) {
console.log('Элемент видим');
} else {
console.log('Элемент скрыт');
}
:visible возвращает true для элементов, у
которых display не равен none.visibility необходимо
использовать метод .css('visibility').Zepto позволяет одновременно изменять видимость нескольких элементов, используя универсальные селекторы:
$('.menu-item').hide(); // скрыть все элементы с классом menu-item
$('.menu-item').show(); // показать все элементы с классом menu-item
Методы .fadeIn(), .fadeOut() и
.toggle() также работают с набором элементов, применяя
анимацию к каждому из них.
.fadeIn() и .fadeOut() с небольшой
длительностью анимации, чтобы избежать лагов..show() после вставки в DOM, чтобы гарантировать корректное
отображение..hide() и .show() работают
мгновенно и не требуют CSS-анимации, что удобно для быстрых переключений
видимости.Эффективное управление видимостью в Zepto обеспечивает компактный код
и плавное взаимодействие с пользователем. Комбинация методов
.show(), .hide(), .toggle() и
анимационных функций позволяет создавать динамичные интерфейсы без
лишней нагрузки на страницу.