Ski*_*927 0 html css safari css-transforms css-animations
无论我如何尝试,我都无法让该动画在 Safari 12 中正常工作。我已经尝试过供应商前缀等,但没有任何效果。
它在 Chrome 中运行良好。有人有主意吗?
<div class="spinners"></div>
Run Code Online (Sandbox Code Playgroud)
这是CSS:
@keyframes spinx {
0% {
transform: rotate3d(0, 1, 1, 360deg);
}
100% {
transform: rotate3d(0, 0, 0, 360deg);
}
}
.spinners {
display: block;
width: 100%;
height: 4rem;
overflow: hidden;
position: relative;
}
.spinners:before, .spinners:after {
content: "";
width: 4rem;
height: 4rem;
border: 3px solid red;
border-radius: 50%;
position: absolute;
top: 50%;
left: 50%;
margin: -2rem 0 0 -2rem;
display: block;
transform-origin: 50% 50% 0;
}
.spinners:before {
animation: spinx 2s infinite linear;
}
.spinners:after {
border-color: blue;
animation: spinx 4s infinite linear alternate;
}
Run Code Online (Sandbox Code Playgroud)
这是一个演示: https: //codepen.io/Skinner927/pen/vVEdag
似乎 Safari 和 Firefox 都无法识别两个关键帧之间的变化。为了解决这个问题,您可以使用中间关键帧:
50% {
transform: rotate3d(0, 1, 1, 180deg);
}
Run Code Online (Sandbox Code Playgroud)
演示:
50% {
transform: rotate3d(0, 1, 1, 180deg);
}
Run Code Online (Sandbox Code Playgroud)
@keyframes spinx {
0% {
transform: rotate3d(0, 1, 1, 360deg);
}
50% {
transform: rotate3d(0, 1, 1, 180deg);
}
100% {
transform: rotate3d(0, 0, 0, 0);
}
}
.spinners {
display: block;
width: 100%;
height: 4rem;
overflow: hidden;
position: relative;
}
.spinners:before,
.spinners:after {
content: "";
width: 4rem;
height: 4rem;
border: 3px solid red;
border-radius: 50%;
position: absolute;
top: 50%;
left: 50%;
margin: -2rem 0 0 -2rem;
display: block;
transform-origin: 50% 50% 0;
}
.spinners:before {
animation: spinx 2s infinite linear;
}
.spinners:after {
border-color: blue;
animation: spinx 4s infinite linear alternate;
}
Run Code Online (Sandbox Code Playgroud)