(弹性盒子)
css动画
动画属性兼容性,需要写5遍浏览器前缀
浏览器的前缀
-webkit-谷歌浏览器
-o-欧鹏浏览器
-khtml-苹果浏览器
-moz-火狐浏览器
-ms-IE浏览器
变换(转换动画,直接动画)
- transform变换 设置多个效果,空格添加
(1) translate(x,y,z)平移默认值(x轴)
translateX(200px)水平移动
translateY()垂直移动
translateZ()前后移动
(2) scale(x,y,z)缩放 默认给所有轴问如何看出来Z轴缩放了,请举例。
scaleX()缩放宽度
scaleX()缩放高度
scaleZ()缩放厚度
没单位 两个参数 缩放宽高,属于2d缩放(写代码时不需要写2d字样) 一个参数为等比缩放
三个参数 scale3d(x,y,z) 可以设置,Z轴的缩放,3d缩放 (3个值,必须加3d,否则报错,可单独设置Z轴缩放)
(3)rotate(x,y,z)旋转 默认值给z轴 (正方形,转成菱形)
rotateX()水平
rotateY()垂直
rotateZ()中心轴
单位:度deg
(4)skew(x,y)扭曲(斜拉) 默认x轴(不理解)
skewX()水平
skewY()垂直
单位:度 deg
(5)matrix(1,0,0,1,0,0)矩阵 2d变换 3*3
值的顺序:(缩放宽度 Y轴扭曲 X轴扭曲 高度缩放 水平移动 垂直移动)全部不用写单位
Matrix3d(1,0,0,1,0,0) //3d变换 4*4
- transform-style:preserve-3d开启3d模式
- transform-origin:x y z 偏移中心点
单位:像素或百分比
过渡动画
transition( 1 2 3 4 ) 4延迟可以省略,默认不延迟。
- transition-property指定要做动画的css
- transition-duration动画过度时间
- transition-timing-function动画类型
linear(匀速)线性 ease(慢快慢)平滑 ease-in 由慢到快 ease-out由快到慢 ease-in-out 由慢到快再到慢 - transition-delay延迟时间
单位:秒数s
注意:display不支持动画效果,不是所有属性都能做动画效果
visibility可以opacity可以隐藏
属性 时间 效果 延迟
例子:(悬停后,元素一边旋转一边变大)
.box2:hover div{
width: 100px;
height: 100px;
transform: rotate(360deg);
}
.box2 div:nth-child(1){
transition: all 5s linear ;
}
自定义动画
Animation(帧动画)
- animation-name定义动画名称 即@keyframes动画的名称
- animation-duration 动画时间 单位:秒s 默认0
- animation-timing-function 动画类型 规定动画的速度曲线,默认时ease
- animation-delay动画延迟时间 单位:秒:s 默认时0
- animation–iteration-count 规定动画的播放次数 默认1 infinite无限循环
- animation-direction规定动画是否在下一周期逆向的播放 (循环次数大于2)
默认normal正向播放 reverse 动画反向播放 alternate (奇数时正向播放,偶数时反向播放)正反交替 alternate- reverse正反交替(奇数时反向播放,偶数时正向播放) - animation-play-state动画状态(鼠标悬停)
running 运动 paused 停止 - animation-fill-mode动画时间之外的状态
none 不设置 backwards开始位置 forwards 结束位置
执行动画
@keyframes 名称{
例子:圆球移动轨迹
方法一(水平)
form{}
to{}
方法二(水平和垂直)
0%{}
25{}
50{}
100%{}
}