Перейти к содержимому

Видео из сайта: как настроить автоматическую прокрутку

Три способа заставить веб-страницу прокручиваться самой, пока вы её снимаете: автопрокрутка браузера, скрипт для консоли, который можно скопировать, и рендерер. А ещё — с какой скоростью прокручивать и какую кривую выбрать.

Aviral LakhanpaulОбновлено Чтение: 3 мин

Коротко

Не прокручивайте вручную. Либо вставьте в консоль браузера короткий скрипт, который прокручивает страницу по кривой сглаживания за заданное время, пока идёт запись, либо отдайте URL рендереру, который рассчитает прокрутку и соберёт видео без программы записи. Для начала закладывайте примерно две секунды на каждый экран страницы по высоте.

Три способа автопрокрутки

Способы автоматически прокрутить веб-страницу для видео
СпособУправление скоростьюСглаживаниеНужна программа записи
Автопрокрутка браузера (средняя кнопка мыши)Вручную, указателемНетДа
Скрипт в консолиТочное, в секундахЛюбая кривая, какую напишетеДа
Рендерер видео по ссылкеТочное, в секундахНа выбор из готовых вариантовНет

Автопрокрутка браузера — режим, который в Windows и Linux включается щелчком средней кнопки мыши, — доступна быстрее всего, но пользы от неё меньше всего: скорость зависит от того, насколько далеко указатель от точки щелчка, поэтому она плавает, а сам указатель должен оставаться на экране, чтобы ею управлять. Для черновой записи сойдёт, для публикации — нет.

Скрипт, который прокручивает страницу за вас

Откройте страницу, откройте DevTools (F12 или ⌥ ⌘ I на Mac), вставьте этот код в консоль (вкладка Console) и нажмите Enter. Скрипт ждёт три секунды, чтобы вы успели запустить запись, а затем прокручивает страницу сверху донизу по кривой с плавным разгоном и торможением за заданное время.

Скрипт для консоли: плавно прокрутить всю страницу
const SECONDS = 20;        // сколько длится прокрутка
const WAIT = 3;            // время, чтобы запустить запись

document.documentElement.style.scrollBehavior = 'auto';
window.scrollTo(0, 0);

const end = document.documentElement.scrollHeight - innerHeight;
const ease = (t) => (t < 0.5 ? 4 * t ** 3 : 1 - (-2 * t + 2) ** 3 / 2);

setTimeout(() => {
  const start = performance.now();
  const step = (now) => {
    const t = Math.min(1, (now - start) / (SECONDS * 1000));
    window.scrollTo(0, end * ease(t));
    if (t < 1) requestAnimationFrame(step);
  };
  requestAnimationFrame(step);
}, WAIT * 1000);
  • scrollBehavior = 'auto' здесь важен. Многие сайты задают scroll-behavior: smooth, и тогда каждый маленький сдвиг скрипта превращается в отдельную анимацию, а рывки сразу возвращаются.
  • requestAnimationFrame сдвигает страницу один раз за каждый показанный кадр, поэтому прокрутка настолько ровная, насколько позволяет экран.
  • Перед запуском один раз прокрутите страницу вручную до конца и обратно, чтобы лениво загружаемые изображения уже были на месте и высота страницы не поменялась посреди дубля.
  • Сайты на библиотеках плавной прокрутки, таких как Lenis или Locomotive Scroll, управляют прокруткой сами и могут спорить со скриптом. Если страница дёргается рывками, причина в этом.

Или обойдитесь без программы записи

Со скриптом частота кадров всё равно остаётся на совести программы записи и вашего компьютера. Рендерер убирает и то и другое: Website Scroll Video один раз читает всю страницу, а затем рассчитывает, где она должна быть в каждом кадре видео с фиксированной частотой 24, 30 или 60 fps, так что тяжёлая страница не теряет кадры, а длинная не уплывает по времени. Вы задаёте то же, что и в скрипте, — секунды и кривую — и смотрите результат в предпросмотре, ничего не тратя.

С какой скоростью прокручивать?

Измерьте страницу в экранах: её полную высоту, делённую на высоту окна. Типичный лендинг занимает от пяти до восьми экранов. Дальше так:

Темп прокрутки в зависимости от задачи
ЗадачаСекунд на экранСтраница в восемь экранов
Тизер или нарезка для соцсетейОколо 18 секунд
Портфолио или витринаОколо 216 секунд
Обзор, который можно прочитать3 и больше или паузы24 секунды и больше

Быстрее экрана в секунду — и текст размазывается, особенно при 30 fps или в GIF. Медленнее трёх — и внимание зрителя уплывает. Если одна секция важнее остальных, пауза на ней лучше, чем замедление всей страницы. В Website Scroll Video можно поставить до 6 пауз длиной от 0,5 до 5 секунд каждая.

Какую кривую сглаживания выбрать

  • Плавное (ease-in-out). Трогается с места, идёт ровно, мягко останавливается. Правильный вариант по умолчанию: оба конца выглядят продуманными, а не обрубленными.
  • Скользящее (ease-out). Стартует быстро и по инерции доезжает до остановки, как после резкого движения пальцами по тачпаду. Хорошо для коротких тизеров, которые должны начинаться энергично.
  • Линейное. Одна скорость от начала до конца. Лучше всего для фонового цикла, где любая смена темпа притягивает взгляд.
  • Импульс. Проходит секцию, замирает, движется снова. Выглядит так, будто кто-то листает сайт, и подходит для обзоров продукта.

Как зациклить видео

Если видео прокручивается вниз, а потом резко возвращается наверх, на стыке цикла виден скачок. Вместо этого прокручивайте вниз и обратно вверх по той же кривой: последний кадр совпадёт с первым, и цикл будет бесшовным. В Website Scroll Video это режим воспроизведения «Вниз и обратно», при желании с остановкой внизу перед возвратом и наверху перед новым кругом.

Попробуйте на своём сайте

Вставьте ссылку и бесплатно посмотрите прокрутку в предпросмотре. Бесплатных кредитов при регистрации: 51. Карта не нужна, а на экспортах нет водяного знака.

Недавние запросы

    Вопросы и ответы

    Коротко о том, что обычно спрашивают дальше.

    Контакты
    Как сделать, чтобы веб-страница прокручивалась автоматически?

    Щёлкните средней кнопкой мыши и двигайте указатель, чтобы включить встроенную автопрокрутку браузера, или вставьте в консоль DevTools короткий скрипт, который вызывает window.scrollTo в каждом кадре по кривой сглаживания. Для видео скрипт даёт куда более ровный результат.

    Есть ли в Chrome настройка автопрокрутки?

    Chrome в Windows и Linux поддерживает автопрокрутку по щелчку средней кнопкой, но её скорость следует за указателем. Встроенной прокрутки по времени нет. Её добавляют расширения, а ещё можно использовать скрипт в консоли или рендерер по ссылке.

    Как сделать так, чтобы видео с прокруткой сайта зацикливалось плавно?

    Прокручивайте вниз и обратно вверх по той же кривой, чтобы последний кадр совпадал с первым, а не перескакивайте из низа страницы наверх.

    Логотип Website Scroll Video: кнопка воспроизведения поверх веб-страницы в окне браузера.

    Меньше времени на запись. Больше — на созидание.

    Автоматизируйте запись сайтов: настраиваемое движение, умные регуляторы и параметры экспорта, сделанные для современных авторов.