[ Проведите курсором ]
Карточки с фото лежат вразброс. Движущийся курсор толкает их по ходу движения, они наклоняются и пружинят обратно на место. Чистый JavaScript без GSAP. Настройте физику на живом примере и скопируйте код.
Вставьте код в чат ИИ-агента и напишите: «Сделай мне такой эффект на сайте». Инструкция для агента уже внутри.
[ Проведите курсором ]
Несколько карточек с фото лежат в ряд, слегка вразброс, как разложенные на столе снимки. Проведите курсором рядом с ними: те, что ближе, сдвинутся по ходу движения мыши и наклонятся, соседние карточки дёрнутся следом, но слабее. Затем все пружинят обратно на свои места с лёгким покачиванием. Если курсор стоит, карточки не двигаются: толкает только движение.
Под капотом простая физика: каждая карточка привязана к своему месту пружиной с затуханием, а курсор передаёт ей толчок по скорости своего движения. Чем ближе карточка к курсору, тем сильнее толчок. Эффект сделан по мотивам «Magnetic Cards» от Codegrid, но без GSAP.
Через ИИ-агента — самый простой путь. Эти эффекты сделаны в первую очередь для тех, кто собирает сайт вместе с ИИ-агентом: Claude Code, Cursor или любым другим. Настройте эффект на примере выше, нажмите «Скопировать код» и вставьте его в чат агента с одной фразой: «Сделай мне такой эффект на сайте». В скопированном коде уже есть описание эффекта и инструкция для агента. Он сам перенесёт стили, разметку и скрипт и подставит ваши фото. Ваши настройки сохранятся.
Вручную. «Скачать код» даёт готовую HTML-страницу с вашими настройками. «Скопировать код» копирует только стили, разметку и скрипт. Скрипт без зависимостей.
<div class="magnet-stage">
<div class="magnet-card" data-magnet-card><img src="photo-1.jpg" alt=""></div>
<!-- ещё карточки -->
</div>
createMagneticCards(document.querySelector('.magnet-stage'), { size: 250, push: 10 });
Размер и места карточек скрипт задаёт сам, раскладывая их вокруг центра блока. На узком экране ряд уменьшается целиком, чтобы поместиться.
Карточки остаются обычными картинками с подписями. Если в системе включено «Уменьшить движение», они спокойно лежат на местах. Когда карточки успокоились, скрипт засыпает и просыпается только от движения мыши; двигается только transform.
Сколько карточек можно положить? Сколько угодно: скрипт раскладывает их в ряд по центру. Если их много, уменьшите шаг или размер.
Работает ли на телефоне? Да, карточки откликаются на движение пальца по блоку.
Нужен ли GSAP, как в оригинале? Нет. Физика — около двадцати строк JavaScript.