CSS3 animation的steps方式过渡
animation默认以ease方式过渡,它会在每个关键帧之间插入补间动画,所以动画效果
是连贯性的。除了ease,linear、cubic-bezier之类的过渡函数都会为其插入补间。
但有些效果不需要补间,只需要关键帧之间的跳跃,这时应该使用steps过渡方式。
比如GIF动图不支持程序对播放的控制,也不支持Alpha通道。但如果我们用一个
PNG图片,把所有帧都放在一起,通过CSS3的animation控制background-position
来播放就可以做到这些。
<style>
@-webkit-keyframes test {
0% {background-position:0px -0%;}
100% {background-position:0px -400%;}
}
@keyframes test {
0% {background-position:0px -0%;}
100% {background-position:0px -400%;}
}
div {
height:35px;width:32px;
-webkit-animation:test 400ms steps(4) infinite;
animation:test 400ms steps(4) infinite;
background:url(http://www.web-tinker.com/share/兔斯基揉脸.png);
}
</style>
<div></div>
steps(4)表示让整个动画在4个关键帧之间切换。这个兔斯基揉脸的图片中
包含了4帧,所以这里设置了4。而且我们的动画时长是400ms,也就是说每一帧
停留100ms,这就和普通的GIF动图达到了一样的效果。而且animation可以
控制播放状态,PNG可以提供Alpha通道。不过animation这东西的兼容性
目前还不咋样,能否用于正式项目还有待考证。
CSS3 animation的steps方式过渡的更多相关文章
- 深入理解CSS3 animation的steps
在应用 CSS3 渐变/动画时,有个控制时间的属性 <timing-function> .它的取值中除了常用到的三次贝塞尔曲线以外,还有个让人比较困惑的 steps() 函数. steps ...
- CSS3 Animation 帧动画 steps()
@keyframes fn{ 0%{} 100%{} } CSS3的Animation有八个属性 animation-name :动画名 fn animation-duration:时间 1s ani ...
- 深入理解CSS3 Animation 帧动画 ( steps )
作者:Aaron的博客 网址:http://www.cnblogs.com/aaronjs/p/4642015.html --------------------------------------- ...
- css3中动画(transition)和过渡(animation)详析
css3中动画(transition)和过渡(animation)详析
- CSS3 animation属性中的steps实现GIF动图(逐帧动画)
相信 animation 大家都用过很多,知道是 CSS3做动画用的.而我自己就只会在 X/Y轴 上做位移旋转,使用 animation-timing-function 规定动画的速度曲线,常用到的 ...
- 深入理解CSS3 Animation 帧动画
CSS3我在5年之前就有用了,包括公司项目都一直在很前沿的技术. 最近在写慕课网的七夕主题,用了大量的CSS3动画,但是真的沉淀下来仔细的去深入CSS3动画的各个属性发现还是很深的,这里就写下关于帧动 ...
- css3 animation实现逐帧动画
css3里面的animation属性非常强大,但是自己用的比较少,最近有次面试就刚好被问到了,趁现在有时间就对animation做一个小总结.同时实现一个逐帧动画的demo作为练习 animation ...
- 深入理解CSS3 Animation 帧动画(转)
CSS3我在5年之前就有用了,包括公司项目都一直在很前沿的技术. 最近在写慕课网的七夕主题,用了大量的CSS3动画,但是真的沉淀下来仔细的去深入CSS3动画的各个属性发现还是很深的,这里就写下关于帧动 ...
- 关于css3 Animation动画
在介绍animation之前有必要先来了解一个东西,那就是“keyframes”,我们把他叫做“关键帧”: 在使用transition制作一个简单的transition效果时,包括了初始属性,最终属性 ...
随机推荐
- myeclipse使用太卡问题
最近写html文件,修改内容时,就会反应好长时间,太卡. 原因:没修改一次,它就会自动校验. 解决方法:window——preferences——Editors——Text Editors ——spe ...
- Executor 和Executors
Java里面线程池的顶级接口是Executor,但是严格意义上讲Executor并不是一个线程池,而只是一个执行线程的工具.真正的线程池接口是ExecutorService. 下面这张图完整描述了线程 ...
- js动态生成按钮,页面用DIV简单布局
今天朋友让我忙帮给写个页面,由于时间紧破,所以没有完善,暂时先贴出来,以后有时间了在做修改 <!DOCTYPE html><html><head><title ...
- MySQL常用查询
显示所有数据库 show datebases; 删除数据库 drop datebase dbName 创建数据库 create datebase [if not exists] dbName; //中 ...
- 介绍map.entry接口
Map是java中的接口,Map.Entry是Map的一个内部接口.java.util.Map.Entry接口主要就是在遍历map的时候用到. Map提供了一些常用方法,如keySet().entry ...
- maven打包技巧
http://www.infoq.com/cn/news/2011/06/xxb-maven-9-package/ "打包"这个词听起来比较土,比较正式的说法应该是"构建 ...
- C#.net在后台执行javascript
string script = string.Format("<script type='text/javascript' >alert('{0}');</script&g ...
- 一个解析cgi参数的SHELL脚本
http://www.cnblogs.com/mfryf/archive/2012/05/23/2514495.html 测试工作中,经常会涉及到一些要验证服务器对某些cgi接口查询结果返回信息进行解 ...
- 一种c#深拷贝方式完胜java深拷贝(实现上的对比)
楼主是一名asp.net攻城狮,最近经常跑java组客串帮忙开发,所以最近对java的一些基础知识特别上心.却遇到需要将一个对象深拷贝出来做其他事情,而原对象保持原有状态的情况.(实在是不想自己new ...
- 创建Unity新项目并编译成游戏程序
注:本人所使用的Unity版本为:Unity5.3.5f1,所使用的VS版本为:Visual.Studio.2013.Ultimate 折腾了快一个月了,终于有时间做自己的啦,哈哈: ) 步骤一:启动 ...