CSS3动画
2015-10-18 14:42
513 查看
本文就自己的理解和使用,介绍CSS3中的动画部分。
CSS3可以自定义动画来取代传统的脚本实现动画。使用CSS动画有三个主要优点:
1. 学习成本低,不需要了解javascript就能够创建动画。
2. 运行效果好,浏览器的渲染引擎会在低性能机器上采用不同方法来保证动画表现,而使用javascript来实现动画,需要非常完美的设计。
3. 让浏览器来控制动画序列,运行浏览器优化动画。比如降低隐藏选项卡中的动画的更新频率。
animation-name:指定有@keyframes描述的关键帧名称
animation-duration:设置动画一个周期的时长
animation-timeing-function:设置动画速度,即通过建立加速度曲线,设置动画在关键帧之间是如何变化。
animation-delay:设置延时,即从元素加载完成之后到动画序列开始执行的这段时间。
animation-iteration-count:设置动画重复次数,可以指定infinite无限次重复动画
animation-direction:设置动画在每次运行完后是反向运行还是重新回到开始位置重复运行。
举一个例子:
也可以使用更简单的方法:
至于关键帧keyframes,我们可以使用简单的属性变化,比如:
也可以进行复杂的变换,那就得使用transform属性了。
完整示例如下:
也可以查看具体API
要在keyframs中使用transform,只需要如下即可:
需要完全掌握CSS3动画,还需要了解一个过渡属性transition。
transition-property, transition-duration,transition-timing-function, transition-delay。
分别代表对哪个属性进行平滑过渡,多长时间内完成过渡,以什么方法来进行过渡,和延迟多久开始过渡。
示例如下:
有一个比较优秀的动画库,Animate.css :animate
可以看看别人是怎么构建动画的。
CSS3可以自定义动画来取代传统的脚本实现动画。使用CSS动画有三个主要优点:
1. 学习成本低,不需要了解javascript就能够创建动画。
2. 运行效果好,浏览器的渲染引擎会在低性能机器上采用不同方法来保证动画表现,而使用javascript来实现动画,需要非常完美的设计。
3. 让浏览器来控制动画序列,运行浏览器优化动画。比如降低隐藏选项卡中的动画的更新频率。
@keyframes
使用@keyframes来定义动画。用法:@keyframes animationname {keyframes-selector {css-styles;}}
animation
animation的子属性有:animation-name:指定有@keyframes描述的关键帧名称
animation-duration:设置动画一个周期的时长
animation-timeing-function:设置动画速度,即通过建立加速度曲线,设置动画在关键帧之间是如何变化。
animation-delay:设置延时,即从元素加载完成之后到动画序列开始执行的这段时间。
animation-iteration-count:设置动画重复次数,可以指定infinite无限次重复动画
animation-direction:设置动画在每次运行完后是反向运行还是重新回到开始位置重复运行。
举一个例子:
/* This is the animation code. */ @-webkit-keyframes example { from { transform: scale(2.0); } to { transform: scale(1.0); } } /* This is the element that we apply the animation to. */ div { -webkit-animation-name: example; -webkit-animation-duration: 1s; -webkit-animation-timing-function: ease; /* ease is the default */ -webkit-animation-delay: 1s; /* 0 is the default */ -webkit-animation-iteration-count: 2; /* 1 is the default */ -webkit-animation-direction: alternate; /* normal is the default */ }
也可以使用更简单的方法:
div { -webkit-animation: example 1s ease 1s 2 alternate; }
至于关键帧keyframes,我们可以使用简单的属性变化,比如:
@-webkit-keyframes example { 0% { margin-left: 100px; background: green; } 40% { margin-left: 150px; background: orange; } 60% { margin-left: 75px; background: blue; } 100% { margin-left: 100px; background: red; } }
也可以进行复杂的变换,那就得使用transform属性了。
transform
使用transform,元素可以按照设定的值变形、旋转、缩放、倾斜。完整示例如下:
transform: none; transform: matrix(1.0, 2.0, 3.0, 4.0, 5.0, 6.0);//矩阵变化 transform: translate(12px, 50%);//平移 transform: translateX(2em);//X方向平移 transform: translateY(3in);//Y方向平移 transform: scale(2, 0.5);//缩放 transform: scaleX(2);//X方向缩放 transform: scaleY(0.5);//Y方向缩放 transform: rotate(0.5turn);//旋转 transform: skewX(30deg);//X方向倾斜 transform: skewY(1.07rad);//Y方向倾斜 transform: matrix3d(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0); transform: translate3d(12px, 50%, 3em); transform: translateZ(2px); transform: scale3d(2.5, 1.2, 0.3); transform: scaleZ(0.3); transform: rotate3d(1, 2.0, 3.0, 10deg); transform: rotateX(10deg); transform: rotateY(10deg); transform: rotateZ(10deg); transform: perspective(17px); transform: translateX(10px) rotate(10deg) translateY(5px);
也可以查看具体API
要在keyframs中使用transform,只需要如下即可:
@keyframes testanimations{ from{transform:translate(0,0);} 20%{transform:translate(20,20);} 40%{transform:translate(40,0);} 60%{transform:translate(60,20);} 80%{transform:translate(80,0);} to{transform:translate(100,20);} }
需要完全掌握CSS3动画,还需要了解一个过渡属性transition。
transition
可设置transition-property, transition-duration,transition-timing-function, transition-delay。
分别代表对哪个属性进行平滑过渡,多长时间内完成过渡,以什么方法来进行过渡,和延迟多久开始过渡。
示例如下:
.animate{ -webkit-transition:left 0.5s ease-out; left:500px; top:500px; }
有一个比较优秀的动画库,Animate.css :animate
可以看看别人是怎么构建动画的。
相关文章推荐
- css之position
- css 填坑常用代码分享
- IE6、IE7、IE8、Firefox兼容性CSS HACK代码+示例
- div自动居于窗口的正中间的css原理
- html+css
- CSS :after、before、<!DOCTYPE>
- css网页编程【详解】
- css3变换,过度,动画实现梦幻网页
- C#彩色艺术化二维码样式设计(仅说思路)
- GIS(三)——优化js版搜狗地图的brand标牌样式
- CSS简单理解与应用
- CSS控制元素的尺寸
- CSS控制列表
- CSS控制背景
- CSS控制边框属性
- 如何修改element.style样式
- CSS选择符类型
- 复习css
- css中em和rem的区别
- CSS控制链接