Метод fadeToggle предназначен для плавного переключения
видимости элементов на странице с анимацией изменения прозрачности. Он
сочетает в себе функциональность методов fadeIn и
fadeOut, автоматически определяя текущее состояние элемента
и выполняя соответствующее действие.
$(селектор).fadeToggle([duration], [easing], [callback]);
'slow' (600 мс), 'fast' (200 мс). По умолчанию
400 мс.'linear' и 'swing'.Автоматическое определение состояния Метод
проверяет текущую видимость элемента (display и
opacity) и выполняет либо плавное появление
(fadeIn), либо исчезновение
(fadeOut).
Непрерывность анимации Если элемент уже
анимируется, последующие вызовы fadeToggle корректно
добавляются в очередь, что предотвращает резкие «скачки»
прозрачности.
Поддержка цепочек методов
fadeToggle возвращает объект Cash, что позволяет строить
цепочки вызовов:
$('.box')
.fadeToggle(500)
.addClass('active')
.slideToggle(300);1. Простое переключение видимости:
$('#button').on('click', function() {
$('.menu').fadeToggle();
});
Элемент с классом menu плавно появляется или исчезает
при каждом нажатии на кнопку.
2. Использование времени анимации и easing:
$('.alert').fadeToggle(1000, 'swing');
Анимация длится 1 секунду с плавным ускорением и замедлением.
3. С обратным вызовом после завершения анимации:
$('.notification').fadeToggle(400, 'linear', function() {
console.log('Анимация завершена для', this);
});
После окончания анимации выводится информация о текущем элементе в консоль.
fadeToggle важно, чтобы элемент
имел корректное начальное свойство display. Например,
display: none для скрытых элементов.opacity, но метод также автоматически управляет свойством
display (блокируется/возвращается)..menu {
display: none;
opacity: 0;
transition: opacity 0.4s;
}
fadeToggle после полной загрузки контента.hide() или
show(), чтобы не возникало конфликтов с очередью
анимации.animate или
CSS-трансформациями.slideToggle и toggle| Метод | Тип анимации | Управление очередью | Авто-определение состояния |
|---|---|---|---|
fadeToggle |
Изменение прозрачности (opacity) | Да | Да |
slideToggle |
Высота элемента (slideUp/Down) | Да | Да |
toggle |
Нет анимации, мгновенное show/hide | Нет | Да |
display: inline. Для
fadeToggle лучше использовать block или
inline-block.fadeToggle можно комбинировать с методами
addClass, removeClass,
slideToggle, animate для создания сложных
интерактивных эффектов.
$('.card').fadeToggle(500, 'swing', function() {
$(this).toggleClass('highlighted').slideToggle(300);
});
Эта комбинация позволяет плавно скрывать/показывать карточку, изменять её стиль и одновременно анимировать высоту.
Метод fadeToggle является удобным инструментом для
управления видимостью элементов с плавной анимацией, обеспечивая
лаконичное и эффективное решение для большинства интерактивных сценариев
в веб-приложениях.