В библиотеке Vivus анимация SVG-элементов строится на
последовательном изменении свойств обводки путей, чаще всего через
манипуляции stroke-dasharray и
stroke-dashoffset. При работе с множеством элементов SVG
возникает необходимость управлять темпом появления каждого отдельного
сегмента. Для этого используется механизм задержек, позволяющий
выстраивать контролируемую очередь отрисовки.
Временная задержка определяет интервал между запуском анимации отдельных путей внутри одного SVG-документа или группы элементов. Это влияет не на длительность самой анимации, а на момент её старта относительно предыдущего элемента.
Vivus формирует внутренний список SVG-элементов, подлежащих анимации. Каждый элемент проходит фазу подготовки, после чего добавляется в очередь исполнения. При последовательной стратегии отрисовки применяется пошаговый запуск анимации.
Задержка между шагами определяется значением, которое может быть задано как через JavaScript-конфигурацию, так и через HTML-атрибуты. В процессе работы библиотеки учитываются:
При наличии задержки запуск следующего элемента откладывается на заданный интервал, формируя визуальный эффект “рисования по очереди”.
Атрибут data-delay используется для управления временным
интервалом между стартами анимации отдельных SVG-элементов.
Синтаксически значение задаётся прямо в разметке SVG:
<path d="..." data-delay="200"></path>
Значение интерпретируется как задержка в миллисекундах, применяемая перед началом анимации конкретного элемента относительно предыдущего шага в очереди.
Основная задача атрибута — локальная корректировка временной сетки анимации без необходимости изменения глобальных настроек Vivus.
Значение data-delay всегда трактуется как числовой
параметр в миллисекундах. Поддерживаются только целые и дробные числа,
приводимые к числу при парсинге DOM-атрибутов.
Типовые значения:
0 — отсутствие задержки100–300 — короткие интервалы, создающие плотную
анимацию500+ — выраженная последовательность с заметной паузой
между элементамиПри некорректном значении применяется значение по умолчанию, определяемое конфигурацией Vivus или игнорирование атрибута.
Поведение data-delay зависит от выбранного режима
анимации.
В режиме поочерёдной отрисовки каждый путь анимируется строго после
завершения предыдущего. В этом контексте data-delay
усиливает эффект ступенчатости, добавляя паузы между стартами отдельных
элементов.
Задержка формирует линейную временную шкалу:
data-delaydata-delayВ синхронном режиме все элементы начинают анимацию одновременно.
Атрибут data-delay в этом случае либо игнорируется, либо
оказывает минимальное влияние, так как отсутствует последовательная
очередь запуска.
В режиме с общей задержкой применяется глобальный таймер старта
анимации, после которого элементы запускаются по внутренней логике
Vivus. data-delay в этом случае используется как
дополнительная корректировка внутри уже активированной очереди.
При одновременном использовании JavaScript-конфигурации и HTML-атрибутов действует система приоритетов:
data-delay)Таким образом, data-delay применяется как уровень
локальной настройки, позволяющий переопределять поведение отдельных
элементов без изменения глобальной логики.
Атрибут может применяться к любым элементам, поддерживаемым Vivus:
pathpolylinelinecircle (при преобразовании в путь)rect (при преобразовании в путь)Влияние сохраняется независимо от формы, так как анимация происходит через преобразование в путь и управление параметрами обводки.
Вместе с data-delay часто используются дополнительные
параметры:
data-duration — длительность анимации элементаdata-start — момент начала анимацииdata-iteration — повторяемостьКомбинация этих атрибутов формирует детализированное управление
временной структурой SVG-анимации, где data-delay отвечает
исключительно за смещение старта.
В SVG с большим количеством мелких элементов накопление задержек приводит к линейному увеличению общего времени анимации. При глубокой вложенности или высокой детализации рисунка эффект становится особенно выраженным.
Типичные особенности:
При использовании большого количества элементов с индивидуальными задержками возникает нагрузка на планировщик анимации. Для минимизации издержек применяется:
data-delayТакая структура позволяет снизить количество переключений таймера внутри очереди исполнения.
Vivus извлекает значение data-delay через стандартный
DOM API. Атрибут считывается как строка и преобразуется в числовой
формат.
Поведение при нестандартных значениях:
В практической работе с атрибутом часто встречаются следующие некорректные сценарии:
Такие ошибки приводят к несогласованному таймингу анимации и визуальным разрывам в последовательности отрисовки.