Галерея
Тащите, крутите колесом, нажмите на фото
Настройки
Вставьте код в чат ИИ-агента и напишите: «Сделай мне такой эффект на сайте». Инструкция для агента уже внутри.
Фото разных размеров разбросаны по бесконечному полотну, которое само медленно плывёт вверх. Его можно тащить мышью и крутить колесом, в движении оно выгибается барабаном, а по клику фото перелетает на большое место с подписью. Чистый JavaScript без библиотек.
Галерея
Тащите, крутите колесом, нажмите на фото
Вставьте код в чат ИИ-агента и напишите: «Сделай мне такой эффект на сайте». Инструкция для агента уже внутри.
Крупные фото разных размеров разбросаны по трём неровным колонкам на полотне, у которого нет конца: сверху и снизу оно повторяется. Само по себе полотно медленно плывёт вверх. Его можно схватить и потащить вверх или вниз мышью или пальцем: после броска оно катится по инерции и постепенно останавливается. Колесо мыши и тачпад тоже двигают полотно, плавно, как при мягкой прокрутке страницы.
Пока полотно движется, оно выгибается, как барабан, в настоящем 3D: фото у верхнего и нижнего края наклоняются, уходя по барабану в глубину, а всё полотно немного отдаляется. Чем быстрее движение, тем сильнее изгиб. Когда полотно останавливается, оно снова становится плоским.
Нажмите на фото: оно перелетает со своего места на большое справа, полотно за ним бледнеет, а слева появляются название, подпись и короткий текст. Крестик, Esc или клик мимо отправляют фото обратно на место.
Эффект сделан по мотивам галереи на aperture-template.modulify.website.
Через ИИ-агента — самый простой путь. Эти эффекты сделаны в первую очередь для тех, кто собирает сайт вместе с ИИ-агентом: Claude Code, Cursor или любым другим. Настройте эффект на примере выше, нажмите «Скопировать код» и вставьте его в чат агента с одной фразой: «Сделай мне такой эффект на сайте». В скопированном коде уже есть описание эффекта и инструкция для агента. Он сам перенесёт стили, разметку и скрипт и подставит ваши фото. Ваши настройки сохранятся.
Вручную. «Скачать код» даёт готовую HTML-страницу с вашими настройками. «Скопировать код» копирует только стили, разметку и скрипт. Скрипт без зависимостей.
<div class="drift">
<div data-drift-item data-title="Утро" data-meta="Москва / 2025" data-text="…">
<img src="photo.jpg" alt="" width="1200" height="1600">
</div>
<!-- ещё фото и блок data-drift-view для открытого фото -->
</div>
createDriftGallery(document.querySelector('.drift'), { speed: 24 });
Фото можно открыть с клавиатуры: Tab до фото и Enter. Esc закрывает открытое фото. Если в системе включено «Уменьшить движение», полотно не плывёт само, а фото открываются без перелёта. Полотно двигается, только пока его видно на экране, и меняет только transform.
А как же прокрутка страницы? Колесо над галереей двигает полотно, а не страницу. Поэтому галерею лучше ставить на весь экран, как в скачиваемом примере, или давать вокруг неё место, где колесо листает страницу.
Сколько фото нужно? От десяти и больше: полотно повторяется, и чем больше фото, тем реже повторы заметны.