Модуль fx_methods в Zepto.js отвечает за работу с
анимациями и визуальными эффектами элементов DOM. Он предоставляет
удобный интерфейс для управления изменением стилей и плавных переходов,
сохраняя при этом минимальный вес библиотеки. Основная цель модуля —
упрощение работы с анимациями, аналогично методам jQuery, но с
использованием CSS-переходов там, где это возможно, для повышения
производительности.
show(duration, callback)Метод делает элемент видимым. Если указать duration,
элемент будет появляться с анимацией. Сигнатура:
$(selector).show(duration, callback)
duration — время анимации в миллисекундах или строка
'fast' / 'slow'.callback — функция, вызываемая после завершения
анимации.Пример использования:
$('#box').show(400, function() {
console.log('Элемент показан');
});
При отсутствии duration элемент становится видимым
мгновенно.
hide(duration, callback)Метод скрывает элемент. Параметры идентичны методу show.
Внутренне используется CSS-свойство display и
opacity для плавного эффекта исчезновения.
$('#box').hide(200);
toggle(duration, callback)Комбинированный метод для переключения видимости элемента. Если
элемент видим — вызывается hide, если скрыт —
show. Особенность: метод корректно
работает даже при одновременных вызовах для нескольких элементов.
$('#box').toggle(300);
fadeIn(duration, callback)Позволяет плавно увеличивать прозрачность элемента от 0 до 1.
Поддерживается за счет CSS-свойства opacity.
Примечание: элемент автоматически становится видимым,
если был скрыт через display: none.
$('#box').fadeIn(500);
fadeOut(duration, callback)Противоположность fadeIn. Плавное уменьшение
прозрачности до 0, после чего элемент скрывается с помощью
display: none.
$('#box').fadeOut(500);
fadeToggle(duration, callback)Комбинирует fadeIn и fadeOut в одном
методе. Эффект зависит от текущей видимости элемента.
$('#box').fadeToggle(400);
fadeTo(duration, opacity, callback)Позволяет установить конкретный уровень прозрачности элемента с анимацией. Параметры:
duration — время анимации.opacity — конечное значение прозрачности (от 0 до
1).callback — функция, выполняемая после завершения
анимации.$('#box').fadeTo(300, 0.5);
slideDown(duration, callback)Плавное раскрытие элемента по высоте от 0 до исходной высоты. Внутри
метода используется CSS-свойство height с переходом, что
обеспечивает производительность.
$('#box').slideDown(400);
slideUp(duration, callback)Скрытие элемента с анимацией уменьшения высоты до 0. После завершения
элемента применяется display: none.
$('#box').slideUp(400);
slideToggle(duration, callback)Комбинированный метод slideDown/slideUp.
Автоматически определяет текущее состояние элемента.
$('#box').slideToggle(300);
Zepto позволяет использовать строковые сокращения для длительности анимации:
'fast' — 200 мс'slow' — 600 мсЕсли duration не указан, анимация выполняется
мгновенно.
Все методы модуля fx_methods поддерживают
callback, который вызывается после завершения анимации. Это
удобно для последовательного выполнения действий:
$('#box').fadeOut(300, function() {
$(this).slideDown(400);
});
Zepto стремится использовать CSS-переходы (transition)
для плавных эффектов, что значительно быстрее, чем анимации через
JavaScript. Если CSS-переходы недоступны, библиотека автоматически
переключается на анимацию через таймеры.
Основные свойства, изменяемые методами модуля
fx_methods:
opacity — для fade методов.height — для slide методов.display — для переключения видимости
(show/hide).Методы модуля могут применяться к коллекции элементов одновременно.
Анимация выполняется для каждого элемента отдельно, а
callback вызывается для каждого. Пример:
$('.item').fadeOut(200, function() {
console.log('Элемент скрыт:', this);
});
Использование CSS-переходов обеспечивает:
Для старых браузеров, не поддерживающих CSS-переходы, Zepto автоматически использует JavaScript-анимации.