[ Прокрутите внутри ]
Картинки открываются, когда до них доходит взгляд.
Картинки открываются, когда доходят до экрана — полосы цвета фона уезжают одна за другой, горизонтальные или вертикальные, а фото мягко опускается из увеличения. Чистый JavaScript без библиотек. Настройте и скопируйте код.
Вставьте код в чат ИИ-агента и напишите: «Сделай мне такой эффект на сайте». Инструкция для агента уже внутри.
[ Прокрутите внутри ]
Картинки открываются, когда до них доходит взгляд.
Пока картинка не дошла до экрана, её закрывают несколько полос цвета фона. Когда она показывается, полосы одна за другой уезжают: горизонтальные вбок, вертикальные вниз. Сама картинка в это время мягко опускается из лёгкого увеличения до обычного размера. В примере три картинки чередуют горизонтальные и вертикальные полосы, а в настройках можно выбрать что-то одно.
Это тот же приём, что в «Переходе полосами», только для отдельных картинок на странице. Анимации делает встроенный в браузер Web Animations API, а момент появления отслеживает IntersectionObserver, поэтому скрипт ничего не считает при прокрутке.
Через ИИ-агента — самый простой путь. Эти эффекты сделаны в первую очередь для тех, кто собирает сайт вместе с ИИ-агентом: Claude Code, Cursor или любым другим. Настройте эффект на примере выше, нажмите «Скопировать код» и вставьте его в чат агента с одной фразой: «Сделай мне такой эффект на сайте». В скопированном коде уже есть описание эффекта и инструкция для агента. Ваши настройки сохранятся.
Вручную. «Скачать код» даёт готовую HTML-страницу, «Скопировать код» — только стили, разметку и скрипт. Скрипт без зависимостей.
Оберните картинку в элемент с data-reveal и задайте ему размер:
<figure class="reveal" data-reveal><img src="photo.jpg" alt=""></figure>
createBandReveal(document.body, { direction: 'mixed', bands: 5 });
Полосы скрипт рисует сам. Их цвет задаёт CSS-переменная --reveal-color: поставьте её равной фону страницы, тогда картинка будет проявляться прямо из фона.
Картинки остаются обычными изображениями с подписями, полосы скрыты от скринридеров. Если в системе включено «Уменьшить движение», картинки открываются сразу, без анимации. Двигается только transform.
Почему полосы видны на фоне? Их цвет не совпадает с фоном страницы. Задайте --reveal-color таким же, как фон.
Можно ли открывать не картинки, а блоки с текстом? Да, data-reveal работает с любым элементом. Приближение тогда не применяется: оно только для картинок и видео.
Нужны ли библиотеки? Нет, всё делает одна функция примерно на 100 строк.