Визуальный сторителлинг и прокрутка
Зачем:Вы поймёте, как рассказывать картинками и порядком показа и как сделать историю, которая разворачивается при прокрутке, не ломая страницу для тех, кому анимации вредят. После урока у вас есть блок «Как мы работаем» из трёх-пяти шагов с анимацией на CSS и запасной версией без неё.
30 минут
Озвучено синтезом речи (Qwen3-TTS), голос не принадлежит человеку.
Визуальный сторителлинг — рассказ картинками и порядком показа. Скроллителлинг превращает прокрутку во время: чем ниже читатель, тем дальше он по истории.
Рассказывать можно и без слов
До сих пор мы говорили о тексте. Но на сайте истории рассказывают и картинки, и порядок показа. Визуальный сторителлинг это приёмы, которыми изображение и композиция делают то, что обычно делают слова.
- Последовательность. Три фотографии «до, процесс, после» это уже история. Порядок решает.
- Крупный план и деталь. Одна точная деталь (рука мастера, чертёж с пометками) говорит больше широкого общего плана.
- Подпись это рассказчик. Подписи читают охотно, поэтому в ней можно сказать главное: что на картинке и почему это важно.
- Не показывайте то, чего нет. Стоковая картинка «рукопожатие» ничего не рассказывает ни о вас, ни о клиенте.
И две оговорки. Картинке нужна текстовая альтернатива (атрибут alt): она нужна тем, кто картинку не видит. И, как в уроке о данных, не выдавайте постановку за документ: фото сотрудников с подписью «наши клиенты» это обман.
Проверьте себя: что делает три фотографии историей?
Порядок: «до, процесс, после». Он превращает набор снимков в цепочку событий.
Прокрутка как время
Страница не кино: у неё нет времени. Но у неё есть прокрутка, и она может стать временем: чем ниже читатель опустился, тем дальше он продвинулся по истории. Приём называют скроллителлингом (scrollytelling, от scroll и storytelling). Известный ранний пример: «Snow Fall», материал газеты The New York Times 2012 года про лавину, где текст, фотографии и видео сменяли друг друга при прокрутке.
Бывают три уровня.
- Просто сцены. Раздел равен сцене, при прокрутке одна сменяется другой. Это обычная страница, и такой подход подходит всем.
- Появление при прокрутке. Элементы появляются, когда читатель до них дошёл. Это то, что мы сделаем.
- Закреплённая сцена. Картинка или диаграмма остаётся на месте, а меняется по шагам, пока пролистывается текст. Для этого обычно берут библиотеку (например, Scrollama, ссылка в источниках) или CSS.
Прокрутите блок на схеме ниже и обратите внимание на переключатель: он имитирует настройку «уменьшить движение».
- 1. Вы рассказываете о ситуации
Звонок или заявка: пара минут.
- 2. Мы называем срок и цену
До начала работы, письменно.
- 3. Работа идёт по шагам
Вы знаете, на каком этапе дело.
- 4. Вы получаете результат
И понятный следующий шаг.
Прокрутите блок: каждый шаг появляется, когда виден почти целиком.
Прокрутка средствами CSS (animation-timeline): проверяю….
Проверьте себя: чем «появление при прокрутке» отличается от обычной страницы?
Содержание то же, а подача другая: элементы возникают, когда читатель до них дошёл. Без анимации страница остаётся полноценной.
Прокрутка на CSS
Раньше появление при прокрутке писали на JavaScript. Теперь для простых случаев есть CSS. Два свойства: animation-timeline, которое привязывает анимацию к прокрутке, и функция view(), которая говорит «следи за тем, как элемент входит в окно».
@keyframes reveal {
from { opacity: 0; transform: translateY(2rem); }
to { opacity: 1; transform: none; }
}
@supports (animation-timeline: view()) {
.step {
animation: reveal linear both;
animation-timeline: view();
animation-range: entry 0% cover 30%;
}
}
@media (prefers-reduced-motion: reduce) {
.step { animation: none; }
} Разберём. @keyframes reveal описывает «из прозрачного и сдвинутого в видимое». Правило с animation-timeline лежит внутри @supports, потому что не все браузеры умеют такую прокрутку: браузеры, которые не умеют, это правило пропустят, и шаги останутся обычным списком. Диапазон animation-range задаёт, на каком отрезке прокрутки идёт анимация. А последнее правило отключает анимацию для тех, кто просил систему уменьшить движение.
Поддержка меняется от версии к версии, поэтому проверяйте актуальные данные в справочнике MDN, прежде чем на неё полагаться. Схема выше сообщает, умеет ли это ваш браузер. Важный принцип: анимация добавка, а не условие. Базовая страница должна работать везде.
Проверьте себя: зачем правило с animation-timeline лежит внутри @supports?
Чтобы браузеры без поддержки пропустили его и показали обычный список. Анимация только добавка.
Правила хорошего тона
- Не угоняйте прокрутку. Не меняйте скорость или направление и не перехватывайте колесо мыши: человек должен управлять страницей сам.
- Уважайте «уменьшить движение». Для людей с вестибулярными нарушениями анимации на странице могут вызывать головокружение и тошноту. В руководстве WCAG об этом есть критерий 2.3.3: движение, запущенное действиями человека, можно отключить.
- Анимируйте только то, что дёшево: прозрачность и сдвиг (
opacity,transform). Анимация размеров заставляет браузер заново считать раскладку и делает страницу рывками. - Содержимое доступно без анимации: читается, работает с клавиатуры и в программе чтения с экрана.
- Анимация служит истории, а не украшает её. Если шаг можно показать без движения, пусть так и будет.
Практика
Сделайте блок «Как это работает» из своего пути клиента.
- Три-пять шагов списком: от первого обращения до результата. Последний шаг приводит к названию вашей кнопки (напишите его слово в слово).
- Анимация при прокрутке:
@keyframes, правило сanimation-timeline: view()внутри@supports (animation-timeline: view()). - Запасная версия:
@media (prefers-reduced-motion: reduce)иanimation: none. - Выключите анимацию мысленно: страница должна читаться как простой список. Если так, всё сделано правильно.
Когда не нужен скроллителлинг
Короткая страница, форма, прайс, юридический текст в анимации не нуждаются. Она оправдана, если путь длинный и нужно показать, как шаги следуют друг за другом. В остальных случаях лучше хорошая вёрстка и точный текст.
Практика
Готовлю вашу страницу…
Тест
Вопрос 1 из 6
Карточки
Эти карточки попадут в повторение, когда вы завершите урок.
Что такое скроллителлинг?
Ответ
История, которая разворачивается по мере прокрутки: читатель сам управляет темпом. Известный пример: «Snow Fall» газеты The New York Times, 2012.
Как сделать анимацию при прокрутке безопасной?
Ответ
База без анимации, анимация в @supports, отключение при prefers-reduced-motion, не угонять прокрутку, анимировать только opacity и transform.
Что делает animation-timeline: view()?
Ответ
Привязывает анимацию к появлению элемента в окне: прогресс анимации идёт вместе с прокруткой, без скриптов.
Зачем нужна подпись к картинке?
Ответ
Её читают охотно. Подпись говорит, на что смотреть. Для невидящих нужна ещё отдельная текстовая альтернатива.
Источники
- Animate elements on scroll with scroll-driven animations (Chrome for Developers) CC BY, по-английски
- CSS scroll-driven animations (MDN) CC BY-SA, по-английски
- prefers-reduced-motion (MDN) CC BY-SA, по-английски
- Understanding SC 2.3.3: Animation from Interactions (W3C) только ссылка, по-английски
- Scrollama: scrollytelling на IntersectionObserver (GitHub) только ссылка, по-английски
Дальше
Теперь вы знаете: визуальный сторителлинг и скроллителлинг.