关键帧动画不适用于 iOS 的 safari
keyframe animation does not work on safari for iOS
windows 上的所有浏览器(chrome,即 firefox、safari)都按应有的方式显示动画。当我在 iphone 上尝试时,动画无法运行。有什么想法吗?
这是我的 CSS:
#rotatingDiv {
position: relative;
z-index: 0;
display: block;
margin: auto;
height: 30px;
width: 30px;
-webkit-animation: rotation .7s infinite linear;
-moz-animation: rotation .7s infinite linear;
-o-animation: rotation .7s infinite linear;
animation: rotation .7s infinite linear;
border-left: 8px solid rgba(0, 0, 0, .20);
border-right: 8px solid rgba(0, 0, 0, .20);
border-bottom: 8px solid rgba(0, 0, 0, .20);
border-top: 8px solid rgba(33, 128, 192, 1);
border-radius: 100%;
}
@keyframes rotation {
from {
transform: rotate(0deg);
}
to {
transform: rotate(359deg);
}
}
@-webkit-keyframes rotation {
from {
-webkit-transform: rotate(0deg);
}
to {
-webkit-transform: rotate(359deg);
}
}
@-moz-keyframes rotation {
from {
-moz-transform: rotate(0deg);
}
to {
-moz-transform: rotate(359deg);
}
}
@-o-keyframes rotation {
from {
-o-transform: rotate(0deg);
}
to {
-o-transform: rotate(359deg);
}
}
我带着同样的问题来到这里,然后尝试了一些有效的方法:
尝试将每个关键帧(和动画)重命名为每个浏览器前缀都唯一的名称。
例如:
#rotatingDiv {
position: relative;
z-index: 0;
display: block;
margin: auto;
height: 30px;
width: 30px;
/* renamed these */
-webkit-animation: webkit-rotation .7s infinite linear;
-moz-animation: moz-rotation .7s infinite linear;
-o-animation: o-rotation .7s infinite linear;
animation: rotation .7s infinite linear;
border-left: 8px solid rgba(0, 0, 0, .20);
border-right: 8px solid rgba(0, 0, 0, .20);
border-bottom: 8px solid rgba(0, 0, 0, .20);
border-top: 8px solid rgba(33, 128, 192, 1);
border-radius: 100%;
}
@keyframes rotation {
from {
transform: rotate(0deg);
}
to {
transform: rotate(359deg);
}
}
/* and renamed these accordingly */
@-webkit-keyframes webkit-rotation {
from {
-webkit-transform: rotate(0deg);
}
to {
-webkit-transform: rotate(359deg);
}
}
@-moz-keyframes moz-rotation {
from {
-moz-transform: rotate(0deg);
}
to {
-moz-transform: rotate(359deg);
}
}
@-o-keyframes o-rotation {
from {
-o-transform: rotate(0deg);
}
to {
-o-transform: rotate(359deg);
}
}
windows 上的所有浏览器(chrome,即 firefox、safari)都按应有的方式显示动画。当我在 iphone 上尝试时,动画无法运行。有什么想法吗?
这是我的 CSS:
#rotatingDiv {
position: relative;
z-index: 0;
display: block;
margin: auto;
height: 30px;
width: 30px;
-webkit-animation: rotation .7s infinite linear;
-moz-animation: rotation .7s infinite linear;
-o-animation: rotation .7s infinite linear;
animation: rotation .7s infinite linear;
border-left: 8px solid rgba(0, 0, 0, .20);
border-right: 8px solid rgba(0, 0, 0, .20);
border-bottom: 8px solid rgba(0, 0, 0, .20);
border-top: 8px solid rgba(33, 128, 192, 1);
border-radius: 100%;
}
@keyframes rotation {
from {
transform: rotate(0deg);
}
to {
transform: rotate(359deg);
}
}
@-webkit-keyframes rotation {
from {
-webkit-transform: rotate(0deg);
}
to {
-webkit-transform: rotate(359deg);
}
}
@-moz-keyframes rotation {
from {
-moz-transform: rotate(0deg);
}
to {
-moz-transform: rotate(359deg);
}
}
@-o-keyframes rotation {
from {
-o-transform: rotate(0deg);
}
to {
-o-transform: rotate(359deg);
}
}
我带着同样的问题来到这里,然后尝试了一些有效的方法:
尝试将每个关键帧(和动画)重命名为每个浏览器前缀都唯一的名称。
例如:
#rotatingDiv {
position: relative;
z-index: 0;
display: block;
margin: auto;
height: 30px;
width: 30px;
/* renamed these */
-webkit-animation: webkit-rotation .7s infinite linear;
-moz-animation: moz-rotation .7s infinite linear;
-o-animation: o-rotation .7s infinite linear;
animation: rotation .7s infinite linear;
border-left: 8px solid rgba(0, 0, 0, .20);
border-right: 8px solid rgba(0, 0, 0, .20);
border-bottom: 8px solid rgba(0, 0, 0, .20);
border-top: 8px solid rgba(33, 128, 192, 1);
border-radius: 100%;
}
@keyframes rotation {
from {
transform: rotate(0deg);
}
to {
transform: rotate(359deg);
}
}
/* and renamed these accordingly */
@-webkit-keyframes webkit-rotation {
from {
-webkit-transform: rotate(0deg);
}
to {
-webkit-transform: rotate(359deg);
}
}
@-moz-keyframes moz-rotation {
from {
-moz-transform: rotate(0deg);
}
to {
-moz-transform: rotate(359deg);
}
}
@-o-keyframes o-rotation {
from {
-o-transform: rotate(0deg);
}
to {
-o-transform: rotate(359deg);
}
}