Yandex Metrika
sanches.free

Живой градиент на фон блока через Granim.js: инициализация один раз после DOM

Разбор задачи

Granim управляет переходами цвета на элементе Canvas. После генерации узла задают размер контейнером родителя, подключают скрипт единым entry для страницы, чтобы не блокировать главный контент.

(function () {
  const holder = document.getElementById('hero-band');
  if (!holder || typeof Granim === 'undefined') return;

  /* eslint-disable no-new */
  new Granim({
    element: holder,
    direction: 'left-right',
    isPausedWhenNotInView: true,
    states: {
      'default-state': {
        gradients: [
          ['#0ea5e9', '#6366f1', '#9333ea'],
          ['#22c55e', '#14b8a6', '#0ea5e9'],
        ],
      },
    },
  });
})();

Держите блок за пределами критического первого экрана, если файл плагина тянется отдельной порцией, либо отложите создание после window.load там, где TTFB уже высокая.

Замечания перед выкладкой

Вносите правки только через среду с бэкапом и понятным diff. Если сниппет идёт в шаблон на Битрикс, проверьте конфликт с уже подключённым jQuery/UI и включите «отложенный» запуск там, где длинный главный файл может обрезать DOMContentLoaded.

Не хотите копаться сами?

Починю за 1-3 дня. Без предоплаты — оплата по результату.

15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии