IE - CSS 动画在动画结束时跳回
IE - CSS Animation jumps back at end of animation
我正在尝试让 div 在页面中央设置动画而不四处移动。 div 应该在旋转(无限)时放大和缩小,同时它位于页面中心的一个位置。它在 Firefox 和 Chrome 中做得很好,但在 IE11 中,div 从页面顶部开始,然后向下移动到需要的位置。动画完成后,div 跳回顶部并重新开始。
这里是 JSFiddle 演示这一点。请在 Chrome 和 IE 中查看对比。
代码如下:
@keyframes logosplash {
0% {transform: translateY(50vh) scale(1.25) rotateZ(-45deg);}
50% {transform: translateY(50vh) scale(1) rotateZ(135deg);}
100% {transform: translateY(50vh) scale(1.25) rotateZ(315deg);}
}
.logoSplash {
animation: logosplash 1.5s infinite cubic-bezier(0.46, 0.03, 0.52, 0.96);
-webkit-animation: logosplash 1.5s infinite cubic-bezier(0.46, 0.03, 0.52, 0.96);
}
.logo {
position: fixed;
width: 13.5vw;
height: 13.5vw;
left: 50%;
margin-top: calc(-6.75vw - 5px);
margin-left: calc(-6.75vw - 5px);
box-shadow: 0px 0px 10px #000, inset 0px 0px 5px #000;
border-radius: 25px;
border: 5px solid #fff;
transform: translateY(50vh) scale(0.6) rotateZ(-45deg);
z-index: 1002;
}
<div class="logo logoSplash"></div>
这是因为 translateY(50vh)
在 IE 中的解释不同。 (我不确定这方面的具体细节,所以请随时在这里提供帮助。)将其从关键帧中删除并将 top:50%;
添加到 .logo
,这应该可以解决问题。
transform: translateY(50vh) scale(0.6) rotateZ(-45deg);
中的 translateY(50vh)
似乎被忽略了,但我不确定为什么。此外,包含在整个动画中保持不变的 属性 值是不好的语义:它完全是多余的。
我正在尝试让 div 在页面中央设置动画而不四处移动。 div 应该在旋转(无限)时放大和缩小,同时它位于页面中心的一个位置。它在 Firefox 和 Chrome 中做得很好,但在 IE11 中,div 从页面顶部开始,然后向下移动到需要的位置。动画完成后,div 跳回顶部并重新开始。
这里是 JSFiddle 演示这一点。请在 Chrome 和 IE 中查看对比。
代码如下:
@keyframes logosplash {
0% {transform: translateY(50vh) scale(1.25) rotateZ(-45deg);}
50% {transform: translateY(50vh) scale(1) rotateZ(135deg);}
100% {transform: translateY(50vh) scale(1.25) rotateZ(315deg);}
}
.logoSplash {
animation: logosplash 1.5s infinite cubic-bezier(0.46, 0.03, 0.52, 0.96);
-webkit-animation: logosplash 1.5s infinite cubic-bezier(0.46, 0.03, 0.52, 0.96);
}
.logo {
position: fixed;
width: 13.5vw;
height: 13.5vw;
left: 50%;
margin-top: calc(-6.75vw - 5px);
margin-left: calc(-6.75vw - 5px);
box-shadow: 0px 0px 10px #000, inset 0px 0px 5px #000;
border-radius: 25px;
border: 5px solid #fff;
transform: translateY(50vh) scale(0.6) rotateZ(-45deg);
z-index: 1002;
}
<div class="logo logoSplash"></div>
这是因为 translateY(50vh)
在 IE 中的解释不同。 (我不确定这方面的具体细节,所以请随时在这里提供帮助。)将其从关键帧中删除并将 top:50%;
添加到 .logo
,这应该可以解决问题。
transform: translateY(50vh) scale(0.6) rotateZ(-45deg);
中的 translateY(50vh)
似乎被忽略了,但我不确定为什么。此外,包含在整个动画中保持不变的 属性 值是不好的语义:它完全是多余的。