Мерцающая CSS анимация только в IE
У меня следующий код работает нормально на современных браузерах, кроме IE11:
Простой псевдоэлемент, анимированный вращаться до бесконечности.
@keyframes spin{
0% {
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-ms-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@-moz-keyframes spin{
0% {
-moz-transform: rotate(0deg);
}
100% {
-moz-transform: rotate(360deg);
}
}
@-webkit-keyframes spin{
0% {
-webkit-transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
}
}
.spin-container{
position: relative;
width: 400px;
height: 300px;
margin: 2em auto;
box-sizing: border-box;
}
.spin-container::after{
content: "";
position: absolute;
display: block;
opacity: 1;
border-color: rgba(0, 0, 0, 0.2) green green rgba(0, 0, 0, 0.2);
border-radius: 100%;
border-style: solid;
border-width: 10px;
width: 100px;
height: 100px;
bottom: 50px;
right: calc(50% - 50px);
border-radius: 100%;
-webkit-animation: spin 1s linear infinite;
-moz-animation: spin 1s linear infinite;
-ms-animation: spin 1s linear infinite;
animation: spin 1s linear infinite;
}
<div class="spin-container"></div>
Я искал причину вот уже несколько недель и не могу определить свойство, которое может это вызвать.
Сначала я подозревал, что источник преобразования не является центром моего счетчика псевдоэлементов, но кажется, что значение по умолчанию 50% 50% 0
для каждого браузера.
Затем я посмотрел на модификацию оси z или на сумасшедшее наследование, но определенно ничего не нашел.
Кто-нибудь знает, почему это мерцает на IE11, а не на других браузерах?
1 ответ
В IE11 есть некоторые проблемы, связанные с аппаратным ускорением и CSS-анимацией:
Microsoft только исправляет проблемы безопасности в IE11, поэтому, скорее всего, это останется не исправленным.