Пролёт сквозь фото
кино-приём Превью у ссылок →

Sticky-сцены

Пролёт сквозь фото

Фото растёт до 3.6x и растворяется — камера «пролетает» сквозь кадр к следующей сцене.

Скрольте медленно.

вариант 1 · прямой пролёт

Ниже — вариант с вращением: кадр не только растёт, но и доворачивается на 10°, полёт становится «киношнее».

вариант 2 · с вращением

И обратный пролёт: мы начинаем внутри кадра и отлетаем назад — фото «садится» в рамку. Хорош как выход из фотоблока.

кадр «сел» на место

Код
<section class="zoom-through">  <!-- 300vh, --p пишет движок -->
  <div class="stick">
    <div class="after">Контент за кадром</div>
    <img class="shot" src="photo.jpg">
  </div>
</section>

<style>
.zoom-through { position: relative; height: 300vh; }
.zoom-through .stick { position: sticky; top: 0; height: 100vh;
  overflow: hidden; background: #0c0f14; }
.shot { position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; will-change: transform, opacity;
  /* фото растёт до 3.6x и растворяется в конце */
  transform: scale(calc(1 + clamp(0, var(--p,0), 1) * 2.6));
  opacity: calc(1 - clamp(0, calc((var(--p,0) - .72) / .22), 1)); }
.after { position: absolute; inset: 0; display: flex;
  align-items: center; justify-content: center;
  opacity: clamp(0, calc((var(--p,0) - .78) / .16), 1); }
</style>
Промпт для ИИ
Сделай пролёт сквозь фотографию: sticky-сцена 300vh с прогрессом в --p; фото на весь экран растёт transform: scale(1 + p*2.6) и с p>0.72 растворяется (opacity к 0 за 0.22 прогресса); под ним — следующий контент, который проявляется с p>0.78 с лёгким дорастанием scale 0.9→1. Ощущение полёта камеры сквозь кадр. Центр масштабирования по умолчанию центр — можно сместить transform-origin в точку «входа».