← Все вопросы
Как сделать плавное появление текста с эффектом через jQuery?
5
Хочу, чтобы блок с текстом не появлялся резко, а плавно проявлялся. На чистом JS пока сложновато, на странице уже подключён jQuery. Как это сделать?
2 ответа
13
✓ Принятый ответ — помог автору
В jQuery для этого есть готовый метод .fadeIn(). Он плавно меняет прозрачность от 0 до 1.
<p id="msg" style="display:none;">Привет! Я появляюсь плавно.</p>
<button id="show">Показать</button>
$('#show').on('click', function () {
$('#msg').fadeIn(600); // 600 мс на появление
});
Важно: элемент изначально должен быть скрыт (display:none), иначе появляться нечему.
Полезные родственники:
.fadeOut(400)— плавно скрыть..fadeToggle()— переключатель показать/скрыть..fadeTo(400, 0.5)— довести до конкретной прозрачности.
Можно задавать скорость словами и колбэк после завершения:
$('#msg').fadeIn('slow', function () {
console.log('текст появился');
});
Значения скорости: 'slow' = 600 мс, 'fast' = 200 мс, либо число в миллисекундах.
6
Если задача только в плавности и не хочется тянуть jQuery ради одной анимации, это легко делается на чистом CSS-переходе:
#msg { opacity: 0; transition: opacity 0.6s; }
#msg.visible { opacity: 1; }
document.getElementById('msg').classList.add('visible');
Работает плавнее (анимация на GPU) и без зависимостей. Но раз jQuery уже подключён — fadeIn тоже норм.
Ваш ответ
Войдите, чтобы ответить на вопрос.