前言
这篇文章我们来介绍下CSS样式更改中的过渡、动画基础用法。
1.过渡
元素从一种样式逐渐改变为另一种的样式 。
- div
- {
- transition: width 1s;
- -moz-transition: width 1s; /* Firefox 4 */
- -webkit-transition: width 1s; /* Safari 和 Chrome */
- -o-transition: width 1s; /* Opera */
- }
- transition-property:应用过渡的Css属性的名称 比如宽度width
- transition-duration:过渡效果花费的时间 比如1s
- transition-timing-function:渡效果的时间曲线 如下所示:
- linear 匀速
- ease 先慢后快
- ease-in 慢速开始
- ease-out 慢速结束
- ease-in-out 慢速开始和结束
- cubic-bezier(n,n,n,n) 在cubic-bezie 函数中定义自己的值,可能的值是0至1之间的数值
- transition-delay:过渡效果何时开始 如1s
2.动画 Animation
1).首先定义@keyframes 规则
- @keyframes my
- {
- from {background: red;}
- to {background: yellow;}
- }
- @-moz-keyframes my /* Firefox */
- {
- from {background: red;}
- to {background: yellow;}
- }
- @-webkit-keyframes my /* Safari 和 Chrome */
- {
- from {background: red;}
- to {background: yellow;}
- }
- @-o-keyframes my /* Opera */
- {
- from {background: red;}
- to {background: yellow;}
- }
为了丰富元素的变化过程,你可以把from to改为百分比的样子:
- @keyframes my
- {
- 0% {background: red;}
- 25% {background: yellow;}
- 50% {background: blue;}
- 100% {background: green;}
- }
- @-moz-keyframes my /* Firefox */
- {
- 0% {background: red;}
- 25% {background: yellow;}
- 50% {background: blue;}
- 100% {background: green;}
- }
- @-webkit-keyframes my /* Safari 和 Chrome */
- {
- 0% {background: red;}
- 25% {background: yellow;}
- 50% {background: blue;}
- 100% {background: green;}
- }
- @-o-keyframes my /* Opera */
- {
- 0% {background: red;}
- 25% {background: yellow;}
- 50% {background: blue;}
- 100% {background: green;}
- }
定义好了,接下来我们就可以启动我们的动画了。
2).animation启动动画效果
- div
- {
- animation-name: my;
- animation-duration: 5s;
- animation-timing-function: linear;
- animation-delay: 2s;
- animation-iteration-count: infinite;
- animation-direction: alternate;
- animation-play-state: running;
- /* Firefox: */
- -moz-animation-name: my;
- -moz-animation-duration: 5s;
- -moz-animation-timing-function: linear;
- -moz-animation-delay: 2s;
- -moz-animation-iteration-count: infinite;
- -moz-animation-direction: alternate;
- -moz-animation-play-state: running;
- /* Safari 和 Chrome: */
- -webkit-animation-name: my;
- -webkit-animation-duration: 5s;
- -webkit-animation-timing-function: linear;
- -webkit-animation-delay: 2s;
- -webkit-animation-iteration-count: infinite;
- -webkit-animation-direction: alternate;
- -webkit-animation-play-state: running;
- /* Opera: */
- -o-animation-name: my;
- -o-animation-duration: 5s;
- -o-animation-timing-function: linear;
- -o-animation-delay: 2s;
- -o-animation-iteration-count: infinite;
- -o-animation-direction: alternate;
- -o-animation-play-state: running;
- }
- animation-name 选择器的 keyframes 的名称
- animation-duration 动画所花费的时间
- animation-timing-function 匀速播放动画
- animation-delay 动画过多久开始
- animation-iteration-count 播放动画次数
- animation-direction 是否在下一周期逆向地播放 normal 正常播放 alternate 轮流反向播放
- animation-play-state 暂停动画 paused 动画已暂停 running 动画正在播放
- animation-fill-mode
- none 不填充
- forwards 当动画完成后,保持最后一个属性值
- backwards 在animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值
- both 向前和向后填充模式都被应用。
参考文档:W3C官方文档(CSS篇)
总结
这篇文章主要介绍了CSS样式更改篇中的过度和动漫基础知识,希望让大家对CSS样式更改有个简单的认识和了解。