Oma*_*mar 4 css css3 css-animations
我正在尝试延迟CSS动画的触发器(不会减慢动画本身的速度,但会在启动前延迟几秒钟).并且在动画运行之前不应显示图像.我查看了其他问题,他们似乎没有解决这个问题.
我的FIDDLE:http://jsfiddle.net/omarel/guh5f8bs/
CSS
.slideRight{
animation-name: slideRight;
-webkit-animation-name: slideRight;
animation-duration: 1s;
-webkit-animation-duration: 1s;
animation-timing-function: ease-in-out;
-webkit-animation-timing-function: ease-in-out;
visibility: visible !important;
}
@keyframes slideRight {
0% {
transform: translateX(-150%);
}
100% {
transform: translateX(0%);
}
}
@-webkit-keyframes slideRight {
0% {
-webkit-transform: translateX(-150%);
}
100% {
-webkit-transform: translateX(0%);
}
}
Run Code Online (Sandbox Code Playgroud)
HTML
<div class="slideRight">
HI
</div>
Run Code Online (Sandbox Code Playgroud)
旁注:还有办法让它与<a>标签一起使用吗?动画似乎不适合这个:
<a class="slideRight">
HI
</a>
Run Code Online (Sandbox Code Playgroud)
延迟动画的开始非常简单.只需将animation-delay属性添加到您的代码中:
.slideRight{
animation-name: slideRight;
animation-duration: 1s;
animation-timing-function: ease-in-out;
visibility: visible !important;
/* New code here: */
animation-delay: 1s;
}
Run Code Online (Sandbox Code Playgroud)
需要注意的是很重要的animation-delay只是延迟开始从一开始的动画.如果你有一个重复的动画,它不会将延迟添加到每个循环的同一点; 只到一开始.目前没有能够进行这种循环延迟的CSS属性.
Firefox已经支持该animation-delay属性很长一段时间(我认为总是,实际上),但对于其他浏览器(Chrome,Safari),您需要使用<a>前缀.
关于<a>元素的第二个问题:是的,它可以工作.它现在不适合你的原因是因为display: inline-block;元素是内联元素.为了使它像您期望的那样工作,请添加.slideRight{}到animation-delay选择器.最终,这就是您的代码的样子:
.slideRight{
animation-name: slideRight;
animation-duration: 1s;
animation-timing-function: ease-in-out;
visibility: visible !important;
/* New code here: */
animation-delay: 1s;
display: inline-block;
}
@keyframes slideRight {
0% {
transform: translateX(-150%);
}
100% {
transform: translateX(0%);
}
}Run Code Online (Sandbox Code Playgroud)
<a class="slideRight">HI</a>Run Code Online (Sandbox Code Playgroud)