第九章 CSS3动画制作
1.CSS3变形transform
语法:transform:[transform-function] *;
设置变形函数,可以是一个,也可以是多个,中间以空格分开
2.变形函数
2.1 translate(tx,ty):平移函数,基于X、Y坐标重新定位元素的位置
translateX(tx):表示只设置X轴的位移
translateY(ty:表示只设置Y轴的位移
2.2 scale(tx,ty):缩放函数,可以使任意元素对象尺寸发生变化
scaleX(sx):表示只设置X轴的缩放
scaleY(sy):表示只设置Y轴的缩放
2.3 rotate(a):旋转函数,取值是一个度数值
参数a单位使用deg表示
参数a取正值时元素相对原来中心顺时针旋转
2.4 skew(ax,ay):倾斜函数,取值是一个度数值
skewX(ax):表示只设置X轴的倾斜
skewY(ay):表示只设置Y轴的倾斜
注意:rotate( )函数只是旋转,而不会改变元素的形状
skew( )函数是倾斜,元素不会旋转,会改变元素的形状
3.过渡transition
3.1 transition呈现的是一种过渡,是一种动画转换的过程,如渐现、渐弱、动画快慢等
语法:transition:[transition-property transition-duration transition-timing-function transition-delay ]
3.2 过渡属性( transition-property )
1)定义转换动画的CSS属性名称
2)取值
属性名称:指定的CSS属性(width、height、background-color属性等)
all:指定所有元素支持transition-property属性的样式,一般为了方便都会使用all
3.3 过渡所需的时间( transition-duration )
定义转换动画的时间长度,即从设置旧属性到换新属性所花费的时间,单位为秒(s)
3.4 过渡动画函数( transition-timing-function )
1)指定浏览器的过渡速度,以及过渡期间的操作进展情况,通过给过渡添加一个函数来指定动画的快慢方式
2)取值
ease:速度由快到慢(默认值)
linear:速度恒速(匀速运动)
ease-in:速度越来越快(渐显效果)
ease-out:速度越来越慢(渐隐效果)
ease-in-out:速度先加速再减速(渐显渐隐效果)
3.5 过渡延迟时间( transition-delay )
1)指定一个动画开始执行的时间,当改变元素属性值后多长时间去执行过渡效果
2)取值
正值:元素过渡效果不会立即触发,当过了设置的时间值后才会被触发
负值:元素过渡效果会从该时间点开始显示,之前的动作被截断
0:默认值,元素过渡效果立即执行
3.6 过渡触发的机制
1)伪类触发
:hover
:active
:focus
:checked
2)媒体查询:通过@media属性判断设备的尺寸,方向等
3)JavaScript触发:用JavaScript脚本触发
3.7 使用步骤
a.在默认样式中声明元素的初始状态样式
b.声明过渡元素最终状态样式,如悬浮状态
c.在默认样式中通过添加过渡函数,添加一些不同的样式
4. animation动画
4.1 实现动画的组成部分
a.通过类似Flash动画的关键帧来声明一个动画
b.在animation属性中调用关键帧声明的动画实现一个更为复杂的动画效果
4.2 设置关键帧
语法一:
@keyframes name {
from {/*CSS样式写在这里*/}
percentage {/*CSS样式写在这里*/}
to {/*CSS样式写在这里*/}
}
语法二:
@keyframes name {
0% {width:0;}
33% {width:23px;}
66% {width:46px;}
100% {width:69px;}
}
注意:写兼容的时候浏览器前缀是放在@keyframes中间
例如:@-webkit-keyframes、@-moz- keyframes
4.3 调用关键帧
animation:animation-name animation–duration animation-timing-function
animation-delay animation-iteration-count animation-direction
animation-play-state animation-fill-mode;
animation-name:由@keyframes创建的动画名称
animation–duration:动画时间
animation-timing-function:动画方式
animation-delay:延迟时间
animation-iteration-count :动画的播放次数
animation-direction :动画的播放方向
animation-play-state :动画的播放状态
animation-fill-mode:动画开始之前和结束之后发生的操作
1)动画的播放次数(animation-iteration-count)
a.值通常为整数,默认值为1
b.特殊值infinite,表示动画无限次播放
2)动画的播放方向(animation-direction)
a.normal,动画每次都是循环向前播放
b.alternate,动画播放为偶数次则向前播放
3)动画的播放状态(animation-play-state)
a.running将暂停的动画重新播放
b.paused将正在播放的元素动画停下来
4)动画发生的操作(animation-fill-mode)
a.forwards表示动画在结束后继续应用最后关键帧的位置
b.backwards表示会在向元素应用动画样式时迅速应用动画的初始帧
c.both表示元素动画同时具有forwards和backwards的效果