ScrollMagic построен на нативных возможностях браузеров и использует
такие технологии, как requestAnimationFrame,
addEventListener и манипуляции с DOM через
transform и position. Это обеспечивает
корректную работу во всех современных браузерах, включая последние
версии:
Поддержка старых версий Internet Explorer (IE9+) возможна, но требует
подключения полифиллов для функций
requestAnimationFrame и CustomEvent, а также
использования стандартного подхода к трансформациям
(translate вместо transform3d).
В мобильных браузерах ScrollMagic функционирует через обычные события
scroll и touchmove. Однако из-за различий в
механике прокрутки на iOS и Android возможны отклонения в
производительности при анимациях с большим количеством
элементов. Для оптимизации стоит использовать свойство
will-change: transform на анимируемых элементах и
минимизировать частоту вызова тяжелых вычислений в обработчиках
событий.
ScrollMagic имеет минимальные зависимости, что делает его лёгким для интеграции:
GSAP (GreenSock Animation Platform)
TweenMax или CSS-свойства.Velocity.js (опционально)
transform и opacity.jquery.js (опционально)
querySelector и classList.ScrollMagic корректно работает с большинством фреймворков и библиотек, но есть особенности при интеграции с:
React, Vue, Angular
componentDidMount в React, mounted во
Vue).update().Bootstrap и другие CSS-фреймворки
position: relative/absolute/fixed, могут вести себя иначе
из-за родительских стилей.offset и
triggerHook для синхронизации с прокруткой.Parallax и другие скрипты прокрутки
scroll, поэтому другие
скрипты, перехватывающие прокрутку, могут влиять на синхронизацию
анимаций.controller.scrollPos() для
получения текущей позиции прокрутки в случаях сложного взаимодействия с
другими библиотеками.ScrollMagic можно подключать как через <script> на
странице, так и через современные менеджеры пакетов:
import ScrollMagic from "scrollmagic";
import "scrollmagic/scrollmagic/uncompressed/plugins/animation.gsap";
const ScrollMagic = require("scrollmagic");
require("scrollmagic/scrollmagic/uncompressed/plugins/animation.gsap");
<script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.8/ScrollMagic.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.8/plugins/animation.gsap.min.js"></script>
При использовании модульных систем важно убедиться, что плагины подключены после основного ScrollMagic, иначе методы анимации будут недоступны.
animation.gsap из версии 2.x.Эти принципы обеспечивают надежную работу ScrollMagic в разнообразных проектах и средах выполнения.