Как предотвратить перерисовку других элементов при использовании перехода CSS

Я пытаюсь предотвратить перерисовку браузера, чтобы повысить производительность большого одностраничного приложения, в котором используется анимация CSS.

Если у меня есть элемент с эффектом :hover { transform: scale(...) }, я могу предотвратить перерисовку, используя will-change: transform и/или transform: translateZ(0), как уже упоминалось здесь.

Но как только я добавляю к этому элементу transition, многие элементы снова начинают перерисовываться.

Вот демонстрационный код и его гифка Как предотвратить перерисовку других элементов при использовании перехода CSS

Единственное, что помогло предотвратить эту перерисовку, — это поместить другие элементы перед анимационным элементом в порядке DOM или z-индексировать анимационный элемент над другими элементами. Но со сложным одностраничным приложением я не хочу микроуправлять z-индексом любого элемента, которому просто нужен переход при наведении.

Любые другие идеи или ссылки? Я не видел обсуждения этой конкретной проблемы с transitions где-либо еще.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
7
0
1 095
1

Ответы 1

Казалось, что position: absolute; на .other не создавал новый слой, я смог решить проблему, добавив transform: translateZ(0) в класс .other.

JSbin

Учитывая, что вы работаете над SPA, я не уверен, насколько осуществим этот подход, поскольку после круга могут быть сотни элементов.

Другие вопросы по теме