← Все вопросы

Как сделать плавное появление текста с эффектом через jQuery?

Задан 18 месяцев назад1.4к просмотров2 ответа
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 тоже норм.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект