Я сделал следующую анимацию для воспроизведения во время загрузки страницы.
HTML <div class="skeleton"></div>
CSS
@keyframes shimmerBackground {
0% { background-position: -468px 0 }
100% { background-position: 468px 0 }
}
.skeleton:empty{
width: 500px;
height: 40px;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: infinite;
background: no-repeat #e4e3e3;
background-image: linear-gradient(to right, #e4e3e3 0, #c7c6c6 20%, #e4e3e3 40%, #e4e3e3 100%);
animation: shimmerBackground 1s linear infinite;
}
Вот оно в действии: https://jsfiddle.net/NuccioJohn/fx1wr8e6/
Анимация корректно останавливается после загрузки элемента данными. Но удар по процессору из Painting and Rendering абсолютно абсурден.
Мне удалось использовать другие методы для значительного снижения использования ЦП, но эти методы не работают в IE 11, и его работа в IE обязательна.
Мой инстинкт заключается в том, что я должен иметь возможность использовать графический процессор для этой анимации, и это уменьшит нагрузку, которую эта анимация оказывает на графический процессор.
transform: translateZ(0);
Кто-нибудь знает, как переписать это более эффективным способом?