ScrollMagic является библиотекой, полностью зависящей от выполнения JavaScript в браузере. Без активного выполнения скриптов страницы, построенные на ScrollMagic анимации и эффекты прокрутки не будут работать. Это влияет на видимость и поведение контента, поэтому важно предусматривать альтернативные решения для пользователей с отключённым JavaScript.
Прогрессивное улучшение предполагает, что базовая функциональность сайта остаётся доступной даже при отсутствии JavaScript. В контексте ScrollMagic это означает:
Пример подхода:
<section class="feature">
<h2>Заголовок секции</h2>
<p>Основной контент секции, доступный без скриптов.</p>
</section>
Здесь базовая информация доступна всегда, а анимации добавляются поверх.
Многие эффекты ScrollMagic можно реализовать с помощью чистого CSS:
background-attachment: fixed; или CSS-перемещений с
transform: translateY().opacity и transition,
активируемые с помощью :target или hover для
ограниченной интерактивности.position: sticky; позволяет закреплять блоки на странице
без JS.Пример простого CSS-параллакса:
.parallax {
background-image: url('image.jpg');
background-attachment: fixed;
background-size: cover;
background-position: center;
height: 500px;
}
<noscript> для альтернативного контентаТег <noscript> позволяет отображать информацию,
когда JavaScript отключён. Его можно использовать для предоставления
статического варианта анимационных блоков:
<noscript>
<div class="static-feature">
Контент, который заменяет анимацию ScrollMagic.
</div>
</noscript>
Это гарантирует, что ключевая информация доступна каждому пользователю.
В некоторых случаях можно заранее сгенерировать серверные версии анимаций:
Для сложных страниц с ScrollMagic важно:
<body> (.js-enabled) можно управлять
активацией ScrollMagic скриптов, оставляя статический вариант для
остальных.<body class="no-js">
...
</body>
<script>
document.body.classList.replace('no-js', 'js-enabled');
</script>
В CSS:
.no-js .animated-element {
opacity: 1; /* Статическое отображение */
}
.js-enabled .animated-element {
opacity: 0;
transition: opacity 1s;
}
Такой подход гарантирует, что ScrollMagic усиливает взаимодействие с сайтом, не лишая контента доступности для пользователей, отключивших скрипты.