Метод slideUp предназначен для плавного скрытия
элементов, создавая эффект «съезжающей вверх» панели. Он является одним
из инструментов библиотеки Cash для работы с анимациями, аналогично
методам jQuery, но с меньшим весом и более оптимизированным
подходом.
$(selector).slideUp([duration], [callback]);
selector — CSS-селектор или
DOM-элемент, к которому применяется анимация.duration (необязательный) —
продолжительность анимации в миллисекундах. По умолчанию используется
значение 400.callback (необязательный) —
функция, вызываемая после завершения анимации.Метод постепенно уменьшает высоту элемента до нуля и одновременно
меняет его padding и margin, чтобы скрытие
выглядело плавным. После завершения анимации элемент получает
CSS-свойство display: none, что делает его полностью
невидимым и исключает из потока документа.
Эта анимация использует внутренние функции
requestAnimationFrame, что обеспечивает высокую
производительность и плавность на всех современных браузерах.
$('.menu').slideUp();
В этом примере все элементы с классом menu плавно
скроются за стандартный промежуток времени в 400ms.
Для кастомной длительности:
$('.menu').slideUp(1000); // анимация займёт 1 секунду
Добавление callback-функции:
$('.menu').slideUp(600, function() {
console.log('Элемент скрыт');
});
Множественные элементы: Если селектор возвращает несколько элементов, метод применяет анимацию к каждому из них по отдельности, сохраняя правильный порядок вызова callback-функций.
Состояние элемента: Если элемент уже скрыт
(display: none), повторный вызов slideUp не
вызовет ошибок и не будет анимации.
Влияние на layout: Метод изменяет
height, padding-top,
padding-bottom, margin-top и
margin-bottom. Все другие CSS-свойства остаются
неизменными.
Взаимодействие с slideDown и
slideToggle:
slideDown — обратная анимация, раскрывающая
элемент.slideToggle — автоматическое переключение между
slideUp и slideDown в зависимости от текущего
состояния элемента.Cash поддерживает цепочки вызовов, что позволяет комбинировать анимации и изменения стилей:
$('.menu')
.slideUp(500)
.css('background-color', 'red')
.fadeIn(300);
В этом примере сначала элемент плавно скрывается, затем изменяется фон, и после этого применяется эффект появления. Все операции выполняются последовательно.
slideUp на большом количестве элементов одновременно.slideUp напрямую
изменяет инлайн-стили height, padding и
margin.const newItem = $('<div class="menu-item">Новый элемент</div>');
$('#menu').append(newItem);
newItem.slideUp(700, () => {
console.log('Динамический элемент скрыт');
});
В этом примере новый элемент сначала добавляется в DOM, а затем
плавно скрывается с помощью slideUp. Callback-функция
позволяет отслеживать завершение анимации.
duration может быть задан как число в миллисекундах или
как строка с ключевым словом:
$('.menu').slideUp('fast'); // 200ms
$('.menu').slideUp('slow'); // 600ms
Если передан некорректный тип, Cash использует стандартное значение
400ms.
display: inlineЭлементы с display: inline не поддерживают изменение
высоты, поэтому перед применением slideUp рекомендуется
установить display: block или
display: inline-block:
$('.inline-element').css('display', 'inline-block').slideUp(500);
Метод slideUp предоставляет простое и эффективное
решение для создания анимаций скрытия элементов с плавным визуальным
эффектом. Правильное использование duration, callback и комбинирование с
другими методами Cash позволяет строить сложные интерфейсы без
дополнительных библиотек.