Метод fadeIn предназначен для плавного появления
элементов на странице за счёт постепенного увеличения их
непрозрачности (opacity). Он является частью набора
методов Cash для работы с эффектами отображения, аналогичных jQuery, но
с меньшим размером и высокой производительностью.
$(selector).fadeIn([duration], [callback]);
Параметры:
duration (необязательный) — длительность
анимации в миллисекундах. Возможны значения:
400),"fast" (≈200 мс) или "slow" (≈600
мс). Если параметр не указан, используется значение по умолчанию
400 мс.callback (необязательный) — функция,
которая выполняется после завершения анимации.
Метод fadeIn:
display: none), устанавливает подходящее значение
display (block, inline,
inline-block или flex, в зависимости от типа
элемента).opacity = 0.opacity от 0 до 1 в течение
заданной длительности.callback,
если он указан.В отличие от простого изменения стиля через
style.display, метод обеспечивает плавный
визуальный эффект, создавая ощущение постепенного появления
элемента на странице.
// Появление скрытого блока за 400 мс
$('.box').fadeIn();
// Появление за 1 секунду с последующим выводом сообщения
$('.box').fadeIn(1000, () => {
console.log('Анимация завершена');
});
// Быстрое появление
$('.box').fadeIn('fast');
fadeIn часто применяют hide() или
fadeOut(), чтобы элемент был изначально невидим.fadeIn можно комбинировать с другими методами:$('.box')
.hide()
.fadeIn(800)
.css('border', '2px solid red');
opacity = 1), вызов
fadeIn не оказывает эффекта, кроме возможного изменения
display.callback можно использовать любую функцию,
включая вызов других анимаций:$('.box').fadeIn(500, function() {
$(this).fadeOut(500);
});
Метод fadeIn реализует анимацию через
requestAnimationFrame, что
обеспечивает:
setInterval,Для точного контроля времени анимации используется числовой параметр в миллисекундах. Пример постепенного увеличения прозрачности вручную:
let el = $('.box')[0];
let opacity = 0;
let duration = 1000; // 1 секунда
let interval = 16; // ≈60fps
let increment = interval / duration;
el.style.display = 'block';
el.style.opacity = opacity;
function step() {
opacity += increment;
if (opacity >= 1) {
el.style.opacity = 1;
} else {
el.style.opacity = opacity;
requestAnimationFrame(step);
}
}
requestAnimationFrame(step);
Этот пример отражает, как работает метод fadeIn под
капотом, постепенно увеличивая opacity до 1 за заданное
время.
Метод fadeIn не влияет на другие
CSS-свойства, кроме opacity и
display. Это позволяет сочетать анимацию с любыми стилями,
включая transform, position,
width и height.
$('.box')
.css({ transform: 'translateY(50px)' })
.fadeIn(600);
hide() или display: none в CSS.fadeIn с delay():$('.box').each((i, el) => {
$(el).delay(i * 200).fadeIn(400);
});
Метод fadeIn в Cash является мощным инструментом для
создания плавных визуальных эффектов, позволяя управлять временем
появления элементов и обеспечивая высокую производительность благодаря
использованию requestAnimationFrame.