博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
css 动画
阅读量:5859 次
发布时间:2019-06-19

本文共 2405 字,大约阅读时间需要 8 分钟。

CSS3动画相关的几个属性是:transition, transform, animation;我分别理解为过渡,变换,动画。虽意义相近,但具体角色不一。就像是SHE组合,虽然都是三个女生,都唱同一首歌,但有负责高音,和擅长低音的,具体工作于角色还是有差异的。//zxx:貌似那个谁谁烧伤了,真是不幸~~

transition指过渡啦,就是从a点都b点,就像过江坐渡轮,是有时间的,是连续的,一般针对常规CSS属性;transform指变换,就那几个固定的属性:旋转啦,缩放啦,偏移啦什么的,与独立于远房亲戚transition使用,但是,效果就是很干涩机械的旋转移动。要是配合transition属性,旋转啊什么的,就会很平滑。animation最先安家于Safari浏览器,自成一家,与transition和transform有老死不相往来之感,但是要说单挑的话,animation要比transition厉害些。

 

CSS3 transition属性早在去年我的“”一文中就有过介绍。其作用是:平滑的改变CSS的值。无论是点击事件,焦点事件,还是鼠标hover,只要值改变了,就是平滑的,就是动画。于是乎,只要一个整站通用的class,就可以很轻松的渐进增强地实现动画效果,超有实用价值的说。

transition有下面些具体属性:

transition-property :* //指定过渡的性质,比如transition-property:backgrond 就是指backgound参与这个过渡

transition-duration:*//指定这个过渡的持续时间
transition-delay:* //延迟过渡时间
transition-timing-function:*//指定过渡类型,有ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier

例如下面这个很简单的例子:

.trans {    -webkit-transition-property: background-color;    -webkit-transition-duration: 0.3s;    -webkit-transition-timing-function: ease;}.trans:hover {    background-color: #486AAA;    color: #fff;}

结果在Safari或是Chrome浏览器下可以看到如下效果:

背景色过渡效果 张鑫旭-鑫空间-鑫生活

如果你正在使用或有webkit核心的浏览器,您可能狠狠地点击这里:

就跟CSS2的background属性一样,平时我们都不会像上面一样,把transition的属性一个一个摊开写,而是合并。

还是上面的例子,我们将transition属性合并,并扩展几个浏览器,如下CSS代码:

.trans {    ...    -webkit-transition: background-color 0.3s ease;    -moz-transition: background-color 0.3s ease;    -o-transition: background-color 0.3s ease;    transition: background-color 0.3s ease;}.trans:hover {    background-color: #486AAA;    color: #fff;}

如下HTML代码:

结果如下截图(截自Opera 10.6浏览器):

Opera下背景色过渡 张鑫旭-鑫空间-鑫生活

transition中的transition-timing-function属性让人心存芥蒂,其一堆ease相关的值(linear | ease-in | ease-out | ease-in-out | cubic-bezier),不太容易让人理解与记住。尤其其中cubic-bezier就是指,与复杂的数学扯上的关系,不禁勾起了高中时数学的梦魇。

其实呢,理一理,也还好。首先cubic-bezier这个基本上就不用鸟了,99%的情况都用不到这个东西,所以,难得清闲,直接pass掉。linear很好记,线性嘛。至于ease-in | ease-out | ease-in-out,就是指缓动效果啦,说白了就是指开始时候慢慢动呢还是结束的时候慢慢动。那么in和out那个先慢慢动呢?啊,我们可以联想记忆,很好记的。我们都知道OOXX吧,ease-in中的in就表示进入,进入的时候显然一开始都是慢的,等瞄准就绪后才能快速冲刺进入,于是ease-in表示先慢后快;ease-out其out表示出来,出来肯定是先快后慢的,因为出来时临近洞口速度肯定要降下来,免得跑出来乱了节奏,于是ease-out表示先快后慢;最后,很好理解的,ease-in-out表示一进一出,也就是先慢后快再慢。

有些纯洁的人可能不太明白上面邪恶的文字表示的含义,没关系,我们可以看图说话,下面截自不同运动曲线下同一时间的截图,从中可以看到哪个先快,哪个先慢(注意:最后都是同时到达):

不同过渡值效果 张鑫旭-鑫空间-鑫生活

 

transform指变换,使用过photoshop的人应该知道里面的Ctrl+T自由变换。transform就是指的这个东西,拉伸,压缩,旋转,偏移。见下面示例代码:

.trans_skew { transform: skew(35deg); }.trans_scale { transform:scale(1, 0.5); }.trans_rotate { transform:rotate(45deg); }.trans_translate { transform:translate(10px, 20px); }

转载地址:http://ddrjx.baihongyu.com/

你可能感兴趣的文章
输出select日期
查看>>
C#对FTP的一些操作 (转)
查看>>
Java访问文件夹中文件的递归遍历代码Demo
查看>>
VBS去除字符串的重复项并统计重复字符出现的次数
查看>>
Linux 进程中 Stop, Park, Freeze【转】
查看>>
YUV格式详解【转】
查看>>
Module Zero之角色管理
查看>>
linux下异步IO的简单例子【转】
查看>>
jQuery 2.0.3 源码分析Sizzle引擎 - 超级匹配
查看>>
python日志模块logging
查看>>
wordpress调用函数大全
查看>>
http协议与http代理
查看>>
JAVA中遇到 UTF-八 序列的字节 1 无效
查看>>
.Net魔法堂:史上最全的ActiveX开发教程——部署篇
查看>>
【译】SQL Server索引进阶第十篇:索引的内部结构
查看>>
.Net开源工作流Roadflow的使用与集成
查看>>
WPF 4 目录树型显示
查看>>
WP7 Emulator 截屏
查看>>
解决方案是什么
查看>>
[LintCode] Move Zeroes 移动零
查看>>