css3 - 图标元素动画效果4 - 动画延迟
2017-05-08 18:34
656 查看
上一篇中,四个图标的动画效果都是同时进行的;为了使图标由先后顺序,我们将每个动画添加延迟。如下图:
在线演示(刚一加载效果不明显,刷新一下)
html:
css:
解析:
如果不添加animation-fill-mode属性,会出现:在动画的最开头几个图标将在顶部一闪而过;
原因是:除第一个图标外,其余图标都有一定的动画延迟,而在动画没有开始时,,图标并没有发生偏移,而且是完全不透明的,只有当动画开始的那一瞬间,图标才会切换到完全透明且偏移的动画起始状态。
解决:可以尝试使这几个图标的默认状态就是发生偏移且完全透明的,但即使这样修改后,我们发现动画开头的闪现问题解决了,新的问题又发生了,当动画结束后,这几个图标又恢复到了其默认状态,即全部消失不见了。要解决这一问题,就要使用animation动画的animation-fill-mode属性。该例中,值为backwards或both均可;
animation-fill-mode属性规定了元素在动画事件之外的状态是怎样的。
下表为animation-fill-mode的属性值
在线演示(刚一加载效果不明显,刷新一下)
html:
<div class="box icon1"> <i class="fa fa-home fa-4x"></i> </div> <div class="box icon2"> <i class="fa fa-search fa-4x"></i> </div> <div class="box icon3"> <i class="fa fa-qq fa-4x"></i> </div> <div class="box icon4"> <i class="fa fa-envelope-o fa-4x"></i> </div>
css:
body {background-color: pink;} .box { cursor: pointer; display: inline-block; width: 100px; height: 100px; border-radius: 50%; background-color: #96CEB4; position: relative; margin-right: 20px; -webkit-animation: move 1s; animation: move 1s; -webkit-animation-fill-mode: both;/*解决动画结束后,图标恢复默认消失不见状态*/ animation-fill-mode: both; } i { color: #FFEEAD; font-size: 48px; position: absolute; top: 16%; left: 20%; } /*定义动画*/ @-webkit-keyframes move { /*兼容性写法。move是关键帧的动画名称*/ from { /*动画起始状态*/ opacity: 0; -webkit-transform: translateY(100%); } to { /*动画结束状态*/ opacity: 1; -webkit-transform: translateY(0%); } } @keyframes move { from { opacity: 0; transform: translateY(100%); } to { opacity: 1; transform: translateY(0%); } } /*动画延迟*/ .icon1 { -webkit-animation-delay: 0s; animation-delay: 0s; } .icon2 { -webkit-animation-delay: .1s; animation-delay: .1s; } .icon3 { -webkit-animation-delay: .2s; animation-delay: .2s; } .icon4 { -webkit-animation-delay: .3s; animation-delay: .3s; }
解析:
如果不添加animation-fill-mode属性,会出现:在动画的最开头几个图标将在顶部一闪而过;
原因是:除第一个图标外,其余图标都有一定的动画延迟,而在动画没有开始时,,图标并没有发生偏移,而且是完全不透明的,只有当动画开始的那一瞬间,图标才会切换到完全透明且偏移的动画起始状态。
解决:可以尝试使这几个图标的默认状态就是发生偏移且完全透明的,但即使这样修改后,我们发现动画开头的闪现问题解决了,新的问题又发生了,当动画结束后,这几个图标又恢复到了其默认状态,即全部消失不见了。要解决这一问题,就要使用animation动画的animation-fill-mode属性。该例中,值为backwards或both均可;
animation-fill-mode属性规定了元素在动画事件之外的状态是怎样的。
下表为animation-fill-mode的属性值
值 | 含义 |
---|---|
forwards | 表示动画完成后保留最后一个关键帧中的属性值; |
backwards | 恰好相反,表示在动画延迟之前的就使得元素应用第一个关键帧中的属性值; |
both | 表示同时包含forwards和backwards两种设置 |
相关文章推荐
- css3 - 图标元素动画效果5 - 弹性动画效果
- css3 - 图标元素动画效果1 - 只执行一次动画
- css3 - 图标元素动画效果2 - 动画无限循环、循环一定次数、反向动画
- css3 - 图标元素动画效果3 - 图标整体在Y轴上移
- css3动画与动效--按钮元素动画效果
- tween.js是一款可生成平滑动画效果的js动画库。tween.js允许你以平滑的方式修改元素的属性值。它可以通过设置生成各种类似CSS3的动画效果。
- <html5+css3+js>用javascript显示隐藏,添加,删除元素,css动画效果
- css3 实现一个改变元素属性实现的动画效果
- 不要忘了css3动画效果transform 和过渡效果 transition:属性 时间 运动效果 延迟时间;
- css3 - 按钮元素动画效果
- Html+CSS3技术实现动画、天气图标动态效果 效果很酷
- CSS3使用AnimationEnd为同一个元素添加多个动画效果
- 图标元素动画效果
- css3中变形函数(同样是对元素来说的)和元素通过改变自身属性达到动画效果
- 酷炫的css3图标loading动画效果代码
- 使用CSS3 Translation为社会化图标添加动画效果
- CSS3中Animation为同一个元素添加多个动画效果
- CSS3制作加载中loading动画效果
- CSS3动画效果-animate.css
- HTML5 实现小车动画效果(Canvas/CSS3/JQuery)