CSS3的新特征有很多,例如圆角效果、图形化边界、块阴影与文字阴影、使用RGBA实现透明效果、渐变效果、使用@Font-Face实现定制字体、多背景图、文字或图像的变形处理(旋转、缩放、倾斜、移动)、动画、多栏布局、媒体查询等。
动画是使元素从一种样式逐渐变化为另一种样式的效果。可通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果。0% 是动画的开始,100% 是动画的完成。
ie9支不支持css3动画?
ie9不支持css3动画。CSS3动画对低版本的浏览器的支持效果并不是很好,特别是IE9及以下版本,更是无法支持。
所以有时候一些简单的动画效果,还只是用js代码来实现,但是效率偏低,而且效果有些偏生硬,不够顺滑。 毕竟用js代码来实现动画并非正确之道。
CSS3动画
虽说css实现动画效果看起来更顺滑一些,但是也只是相对而言,因为css3动画的也是一帧一帧的执行,由于多种因素的影响,细看之下也未必是真的顺滑,所以只要把动画设计让眼睛感觉到是顺滑的就能达到完美的效果。
在css3中,我们可以通过@keyframes创建关键帧动画效果。我们需要将@keyframes绑定到选择器中,否则不会有效果出现。同时,我们还需定义动画时长和动画名称
1、定义动画轨迹
@keyframes 动画名称{ from{ 动画初始状态 } to{ 动画结束状态 } } //---兼容写法 @-moz-keyframes @-webkit-keyframes @-o-keyframes /* 使用百分比可以实现动画连续执行*/ @keyframes 动画名 { 0%{ } 50%{ } 100%{ } }
2、调用动画
animation: name duration timing-function delay iteration-count direction;
animation-name动画名称
animation-duration完成动画所花费的时间
animation-timing-function规定动画的速度曲线。
inear匀速
ease低速/加快/变慢
ease-in低速开始
ease-out低速结束
ease-in-out低速开始和结束。
animation-delay动画开始之前的延迟。
animation-iteration-count动画应该播放的次数。
animation-direction是否应该轮流反向播放动画。
normal 正常播放
reverse 反向播放
alternate 奇数次正向,偶数次反向。
alternate-reverse 奇数次反向,偶数次正向
示例:
1、定义动画发生的空间
HTML代码:
<div class="container"> <div class="element"></div> </div>
2、使用@keyframes规则创建简单动画
css代码
body { background-color: #fff; color: #555; font-size: 1.1em; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; } .container { margin: 50px auto; min-width: 320px; max-width: 500px; } .element { margin: 0 auto; width: 100px; height: 100px; background-color: #0099cc; border-radius: 50%; position: relative; top: 0; -webkit-animation: bounce 2s infinite; animation: bounce 2s infinite; } @-webkit-keyframes bounce { from { top: 100px; -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 25% { top: 50px; -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 50% { top: 150px; -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 75% { top: 75px; -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } to { top: 100px; } } @keyframes bounce { from { top: 100px; -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 25% { top: 50px; -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 50% { top: 150px; -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 75% { top: 75px; -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } to { top: 100px; } }
3、效果图:
更多web前端知识,请查阅 HTML中文网 !!