В библиотеке fullPage.js скорость анимации переходов
между секциями управляется параметром scrollingSpeed. Этот
параметр задаёт продолжительность прокрутки в миллисекундах. По
умолчанию значение составляет 700 мс, что обеспечивает
плавный, но не слишком медленный переход.
new fullpage('#fullpage', {
scrollingSpeed: 1000 // скорость перехода 1 секунда
});
При увеличении значения scrollingSpeed анимация
становится медленнее, создавая эффект плавного и размеренного скролла.
При уменьшении скорость перехода увеличивается, что подходит для
динамичных интерфейсов с быстрым переключением секций.
1. autoScrolling Если параметр
autoScrolling установлен в true,
scrollingSpeed напрямую управляет скоростью автоматической
прокрутки между секциями. При false влияние становится
частично заметным только в JavaScript-вызовах программной прокрутки,
например:
fullpage_api.moveTo(3); // прокрутка к 3-й секции с установленной скоростью
2. fitToSection Опция
fitToSection автоматически подстраивает прокрутку так,
чтобы секция занимала весь экран. При этом scrollingSpeed
используется как время завершения анимации выравнивания. Если установить
fitToSection: false, секции не фиксируются полностью, а
скорость анимации уже не контролирует «дотягивание» до секции.
new fullpage('#fullpage', {
fitToSection: true,
scrollingSpeed: 1200
});
3. CSS-анимации внутри секций Если внутри секций
используются собственные CSS-переходы (transition, animation),
синхронизация с scrollingSpeed не происходит автоматически.
Для согласованной анимации рекомендуется выравнивать длительность
CSS-анимации с scrollingSpeed:
.section-content {
transition: opacity 1s ease-in-out;
}
FullPage.js позволяет изменять скорость переходов после инициализации
с помощью метода setScrollingSpeed:
fullpage_api.setScrollingSpeed(500); // уменьшение скорости до 500 мс
Это полезно для адаптации поведения сайта под разные сценарии, например, замедление анимации при просмотре на больших экранах или ускорение на мобильных устройствах.
Если для секций настроены якоря через anchors, прокрутка
к конкретной секции также учитывает scrollingSpeed:
<a href="#contact">Контакты</a>
Вызов по якорю (#contact) будет анимирован с текущей
скоростью, установленной в параметре scrollingSpeed. Это
гарантирует одинаковое поведение при навигации через меню и при
прокрутке колесом мыши.
scrollingSpeed соответствовал общему темпу анимаций на
сайте. Для спокойного лендинга лучше 800–1000 мс, для динамичных
интерфейсов 400–600 мс.fitToSection.Метод moveSectionDown() или moveSectionUp()
использует установленную скорость анимации:
fullpage_api.moveSectionDown(); // плавный переход вниз
При вызове методов с параметрами silent
(true) анимация игнорируется, и секция перемещается
мгновенно, что полезно для скриптового управления без визуальных
эффектов:
fullpage_api.moveTo(2, 0, true); // мгновенный переход к первой слайд-секции
В версии fullPage.js 4+ можно дополнительно управлять функцией
плавности анимации через опцию easing и
easingcss3. Значение easeInOutCubic или
linear изменяет характер ускорения и замедления:
new fullpage('#fullpage', {
scrollingSpeed: 1000,
easing: 'easeInOutCubic',
easingcss3: 'ease'
});
easing влияет на анимацию, когда используется
JavaScript-прокрутка.easingcss3 применяется для CSS3-анимации.Правильное сочетание scrollingSpeed и
easing создаёт гармоничное ощущение скролла, предотвращая
резкие рывки и визуальные рассогласования.
Если нужно, могу подготовить следующую главу с подробным
разбором сочетания scrollingSpeed и событий onLeave /
afterLoad, чтобы показать, как синхронизировать скорость
анимации с запуском внутренних эффектов секций.
Хотите, чтобы я сразу сделал этот разбор?