Работа конструктора библиотеки Vivus строится вокруг единственного объекта конфигурации, который определяет способ загрузки SVG, тип прорисовки путей, временные характеристики и поведение анимации. Ниже приведён полный разбор всех параметров, доступных в момент создания экземпляра.
id Идентификатор SVG-элемента в DOM, к
которому будет применена анимация. Используется, когда SVG уже
присутствует на странице.
file Путь к внешнему SVG-файлу. Если
указан, Vivus загружает изображение через XMLHttpRequest и подставляет
его в DOM.
selfDestroy Булев параметр,
определяющий удаление экземпляра после завершения анимации.
true — объект очищается из памяти после окончанияfalse — сохраняется для повторного использованияtype Определяет стратегию прорисовки
SVG-путей.
Поддерживаемые значения:
delayed — последовательная отрисовка всех путей с
задержкойoneByOne — поочерёдная прорисовка каждого пути с полной
анимацией перед переходом к следующемуscenario — управление анимацией через атрибут
data-vivus в SVG, позволяющий задавать сценарии
вручнуюЭтот параметр определяет базовую визуальную механику работы Vivus.
start Определяет момент начала
анимации.
inViewport — запуск при появлении SVG в области
видимости (IntersectionObserver / scroll-based logic)manual — запуск только через программный вызов
(play())autostart — запуск сразу после инициализацииduration Общая длительность анимации в
условных единицах времени. Не является миллисекундами напрямую, а
используется как коэффициент распределения времени между путями.
delay Задержка между началом анимации
отдельных путей. Особенно значима при type: delayed.
dashGap Определяет промежуток между
сегментами пунктирной линии, используемой для имитации рисования. Чем
больше значение, тем более «рваной» может выглядеть линия в процессе
анимации.
pathTimingFunction Функция изменения
скорости прорисовки каждого отдельного пути.
Принимает функцию вида:
function(t) { return t; } (линейная)Используется для управления динамикой рисования каждого контура внутри Vivus.
animTimingFunction Функция общей
временной интерполяции всей анимации.
В отличие от pathTimingFunction, влияет на глобальное
распределение времени между всеми путями.
forceRender Булев параметр,
принудительно заставляющий браузер перерисовывать SVG на каждом шаге
анимации.
true — повышенная точность, но выше нагрузкаfalse — оптимизированный режим (рекомендуется по
умолчанию)onReady Callback-функция, вызываемая
после успешной загрузки SVG (особенно актуально при использовании
file).
Сигнатура:
onReady(vivusInstance) — возвращает экземпляр Vivus
после инициализации DOM-структурыПозволяет выполнять манипуляции с путями до старта анимации.
Хотя не всегда явно документированы как публичные, в реальных реализациях используются дополнительные параметры, влияющие на расчёт анимации:
dashArray Массив значений
stroke-dasharray, вычисляемый автоматически на основе длины пути. Может
переопределяться для кастомных эффектов.
dashOffset Начальное смещение штриха.
Используется для имитации эффекта «рисования с нуля».
При использовании режима scenario активируется механизм,
при котором каждый SVG-путь может содержать атрибут:
data-vivus="start:X;duration:Y"Это позволяет задавать локальные параметры анимации внутри самого SVG-документа, что полностью переносит контроль с JavaScript на разметку.
Поведение Vivus формируется не отдельными параметрами, а их взаимодействием:
type + start определяют момент и стратегию запускаduration + delay формируют временную структуруpathTimingFunction + animTimingFunction задают кривые
скоростиfile + onReady определяют способ загрузки и точку входа
в инициализациюselfDestroy влияет на жизненный цикл экземпляраВ совокупности эти параметры образуют систему управления SVG-анимацией, где каждый параметр изменяет либо глобальное поведение, либо локальную механику отрисовки путей.