Скролл-масштаб
стиль Apple По словам →

Микровзаимодействия

Скролл-масштаб

Медиа-карточка дорастает до полного размера, пока проезжает экран.

Скрольте и следите за размером.

Карточка дорастает от 90% до 100%, пока проезжает вьюпорт, — как большие медиа на страницах Apple.

Код
<div class="grow-card"><img src="photo.jpg"></div>

<script>
var cards = document.querySelectorAll(".grow-card");
function loop() {
  var vh = innerHeight;
  cards.forEach(function (card) {
    var r = card.getBoundingClientRect();
    if (r.bottom < 0 || r.top > vh) return;
    var p = Math.min(Math.max((vh - r.top) / (vh * 0.8), 0), 1);
    var s = 0.9 + 0.1 * (1 - Math.pow(1 - p, 2));  // ease-out
    card.style.transform = "scale(" + s.toFixed(3) + ")";
  });
  requestAnimationFrame(loop);
}
if (!matchMedia("(prefers-reduced-motion: reduce)").matches)
  requestAnimationFrame(loop);
</script>

<style>.grow-card { will-change: transform; border-radius: 26px; overflow: hidden; }</style>
Промпт для ИИ
Сделай фотокарточкам скролл-масштаб в стиле Apple: пока блок едет снизу к центру вьюпорта, он дорастает от scale(0.9) до scale(1). В rAF: p = clamp((innerHeight - rect.top) / (innerHeight * 0.8), 0, 1); scale = 0.9 + 0.1 * (1 - (1-p)^2). will-change:transform, скругление и overflow:hidden на карточке. Считай только в кадре, отключай при prefers-reduced-motion.