Предотвращение перерисовки при использовании анимации спрайтов css

Можно ли вообще предотвратить перерисовку при запуске анимации спрайта css?

Предотвращение перерисовки при использовании анимации спрайтов css

Я пробовал использовать will-change: background-position;, и, похоже, он ничего не делает в этом отношении.

Демо в jsfiddle

(Попробуйте эту ссылку без iframe, если хотите увидеть перерисовку) https://fiddle.jshell.net/alvarotrigo/4xafot6p/5/show/

.demo{
    position: absolute;
    height: 256px;
    width: 256px;
    display: block;
    z-index: 999;
    display: block;
    background-image: url('https://cdn-images-1.medium.com/max/2600/1*WhDjw8GiV5o0flBXM4LXEw.png');
    background-position: 0 0;

}
.demo.active{
    bottom: -20px;

    will-change: background;
    animation: play_1 300ms steps(6) infinite;
}
@keyframes play_1 {
   from{ background-position-x: 0; }
   to{ background-position-x: -1536px; }
}

он отлично работает в моем браузере

Noni 17.01.2019 12:27

Jsfiddle хранит его внутри iframe. Это может быть причиной того, что разработчикам Chrome не удается правильно отладить отладку рендеринга. Попробуйте отсюда: fiddle.jshell.net/alvarotrigo/4xafot6p/5/show

Alvaro 17.01.2019 13:03

все еще работает нормально :)

Noni 17.01.2019 13:27

Вы меняете положение фона, перерисовка должна быть сделана, верно? Я полагаю, что только этот элемент будет перекрашиваться, и мне кажется, что это нормально. Есть ли причина, по которой вы этого не хотите? (Кроме очевидных).

Prajwal 17.01.2019 15:09

@Prajwal это не обязательно так. См. мое исправление с использованием псевдоэлемента здесь: Элемент jsfiddle.net/alvarotrigo/4xafot6p/6 не будет перерисовываться там. Что делает его более плавным для браузера.

Alvaro 17.01.2019 16:57

@Nori не о том, чтобы работать или не работать. Речь идет о перекрашивании, а не о перекрашивании.

Alvaro 17.01.2019 16:57

Я должен проверить ваше решение завтра. Кстати, как вы думаете, почему добавление will-change уменьшит перекрашивание?

Prajwal 17.01.2019 19:46

Видимо создает новый слой и предотвращает перекрашивание. Вот статья из Google. Я тестировал его в других сценариях, и, похоже, он работает.

Alvaro 17.01.2019 19:52
Приемы 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 сценарий полностью изменился.
0
8
49
0

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