Главы со снапом
сторителлинг-лендинги Стек липких заголовков →

Sticky-сцены

Главы со снапом

Полноэкранные главы защёлкиваются при прокрутке, точки показывают позицию.

Крутите колесо внутри рамки.

Глава 1

Глава 2

Глава 3

Контейнер прокручивается сам (колесом внутри рамки): каждая глава защёлкивается на весь экран, точки справа показывают позицию.

Код
<main class="chapters">
  <section class="ch">Глава 1</section>
  <section class="ch">Глава 2</section>
  <section class="ch">Глава 3</section>
</main>

<style>
.chapters { height: 100vh; overflow-y: auto;
  scroll-snap-type: y mandatory; }      /* защёлкивание */
.ch { height: 100vh; scroll-snap-align: start; }
</style>

<script>
// точки-навигация: подсветка текущей главы
var chs = document.querySelectorAll(".ch");
var io = new IntersectionObserver(function (es) {
  es.forEach(function (e) {
    if (e.isIntersecting) {
      var idx = [].indexOf.call(chs, e.target);
      // dots[idx].classList.add("on") ...
    }
  });
}, { threshold: .6 });
chs.forEach(function (c) { io.observe(c); });
</script>
Промпт для ИИ
Сделай полноэкранные главы со скролл-снапом: контейнер height:100vh, overflow-y:auto, scroll-snap-type:y mandatory; главы height:100vh со scroll-snap-align:start — прокрутка защёлкивается на границах. Справа — колонка точек: IntersectionObserver с root=контейнер и threshold 0.6 подсвечивает текущую (активная крупнее и ярче). Если на сайте Lenis — контейнеру data-lenis-prevent, иначе снап не сработает.