仅在 IE 上闪烁 CSS 动画
Flickering CSS animation on IE only
我有以下代码 运行 在现代浏览器上很好,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>
几周来我一直在寻找原因,但我无法确定 属性 会导致这种情况。
我首先怀疑 transform-origin 不是我的伪元素微调器的中心,但似乎每个浏览器的默认值都是 50% 50% 0
。
然后我查看了 z 轴修改或疯狂继承,但我确实一无所获。
有谁知道为什么这在 IE11 上闪烁,而在其他浏览器上不闪烁?
IE11 存在一些与硬件加速和CSS动画相关的问题:
Microsoft 仅修复 IE11 中的安全相关问题,因此很可能不会修复。
我有以下代码 运行 在现代浏览器上很好,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>
几周来我一直在寻找原因,但我无法确定 属性 会导致这种情况。
我首先怀疑 transform-origin 不是我的伪元素微调器的中心,但似乎每个浏览器的默认值都是 50% 50% 0
。
然后我查看了 z 轴修改或疯狂继承,但我确实一无所获。
有谁知道为什么这在 IE11 上闪烁,而在其他浏览器上不闪烁?
IE11 存在一些与硬件加速和CSS动画相关的问题:
Microsoft 仅修复 IE11 中的安全相关问题,因此很可能不会修复。