Какие знаешь способы избежать Relayout
-
Используй
transformвместоtop/left
transformне вызывает relayout, так как работает на GPU:css.element { transform: translate(50px, 50px); } -
Избегай чтения layout-свойств (
offsetWidth,getComputedStyle)
Чтение этих свойств форсирует синхронный пересчёт layout. Оптимизируй код, группируя чтение и запись (см. FastDOM).
-
Применяй
will-change
Подсказывает браузеру, что элемент будет изменяться, позволяя оптимизировать рендеринг:css.animated { will-change: transform; } -
Используй
position: absolute/fixed
Абсолютно позиционированные элементы выпадают из потока и меньше влияют на соседей. -
Оптимизируй CSS-селекторы
Сложные селекторы (например,div:nth-child(3) > a:hover) замедляют перерасчёт layout. -
Batch DOM-изменения
Вместо множества мелких правок используйDocumentFragmentили скрывай элемент (display: none) на время изменений.

офферы быстрее!
Следующий вопрос
Это единственный вопрос по вашему фильтру