关键帧不适用于 Firefox 或 Safari 中动态添加的 AngularJS class
Keyframe is not working with an AngularJS dynamically added class in Firefox or Safari
我正在尝试将 class 动态添加到我的 dom 中的元素,当它在 angular 中关联的模型为真时,但在 Firefox 和 Safari 中(与 Chrome 一起工作正常),与 class(旋转)关联的关键帧未显示。
Html:
<span class="{{loading ? 'loader' : ''}}"><i class="fa fa-github fa-4x"></i></span>
Css:
.loader {
text-align: center;
margin: 20px;
height: 40px;
-webkit-animation-name: spin;
-webkit-animation-duration: 1000ms;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
-moz-animation-name: spin;
-moz-animation-duration: 1000ms;
-moz-animation-iteration-count: infinite;
-moz-animation-timing-function: linear;
-ms-animation-name: spin;
-ms-animation-duration: 1000ms;
-ms-animation-iteration-count: infinite;
-ms-animation-timing-function: linear;
animation-name: spin;
animation-duration: 1000ms;
animation-iteration-count: infinite;
animation-timing-function: linear;
}
@-ms-keyframes spin {
from { -ms-transform: rotate(0deg); }
to { -ms-transform: rotate(360deg); }
}
@-moz-keyframes spin {
from { -moz-transform: rotate(0deg); }
to { -moz-transform: rotate(360deg); }
}
@-webkit-keyframes spin {
from { -webkit-transform: rotate(0deg); }
to { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
from {
transform:rotate(0deg);
}
to {
transform:rotate(360deg);
}
}
这不是根据变量添加 class 的好方法:
<span ng-class="{ 'loader' : loading }"><i class="fa fa-github fa-4x"></i></span>
问题是样式,你需要使用
display:block
因为 Safari 需要阻止应用此 属性。
这里有一个例子:
http://codepen.io/luarmr/pen/VLPBqJ
我正在尝试将 class 动态添加到我的 dom 中的元素,当它在 angular 中关联的模型为真时,但在 Firefox 和 Safari 中(与 Chrome 一起工作正常),与 class(旋转)关联的关键帧未显示。
Html:
<span class="{{loading ? 'loader' : ''}}"><i class="fa fa-github fa-4x"></i></span>
Css:
.loader {
text-align: center;
margin: 20px;
height: 40px;
-webkit-animation-name: spin;
-webkit-animation-duration: 1000ms;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
-moz-animation-name: spin;
-moz-animation-duration: 1000ms;
-moz-animation-iteration-count: infinite;
-moz-animation-timing-function: linear;
-ms-animation-name: spin;
-ms-animation-duration: 1000ms;
-ms-animation-iteration-count: infinite;
-ms-animation-timing-function: linear;
animation-name: spin;
animation-duration: 1000ms;
animation-iteration-count: infinite;
animation-timing-function: linear;
}
@-ms-keyframes spin {
from { -ms-transform: rotate(0deg); }
to { -ms-transform: rotate(360deg); }
}
@-moz-keyframes spin {
from { -moz-transform: rotate(0deg); }
to { -moz-transform: rotate(360deg); }
}
@-webkit-keyframes spin {
from { -webkit-transform: rotate(0deg); }
to { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
from {
transform:rotate(0deg);
}
to {
transform:rotate(360deg);
}
}
这不是根据变量添加 class 的好方法:
<span ng-class="{ 'loader' : loading }"><i class="fa fa-github fa-4x"></i></span>
问题是样式,你需要使用
display:block
因为 Safari 需要阻止应用此 属性。
这里有一个例子: http://codepen.io/luarmr/pen/VLPBqJ