16-3D形变,平移和旋转,关键帧动画
01-3D形变
设置3D环境
perspective: 景深
他的默认值是 none
需要把景深 perspective 设置在3D环境的父级上
他的值是具体的数值,不可以是百分比,因为Z轴没有百分比
也不能是0或者负值
使用 transform-style 设置3d效果
默认值 flat,表示2d
preserve-3d 表示3d
使用 perspective-origin 设置透视点的位置
1.可以是 left top right bottom center 等方位名词的组合
2.可以是具体数值
3.可以是百分比
perspective-origin:x轴的位置 y轴的位置
以上三个关于3D设置的属性都设置再 3D环境的父级上
perspective: 8000px;
/* 设置3D效果 */
transform-style: preserve-3d;
/* 设置透视点 眼睛在哪里看*/
perspective-origin: 0 0;
02平移和旋转3D
平移 可以使用 translate3d(x,y,z);
也可以单独使用 translateZ(z)
3D旋转
分开写法
rotateX(num):num为正,以上边为基准线,上边往视窗的里面翻转,num为负,上边往视窗的外面翻转
rotateY(num):num为正,以左边为基准线,左边往视窗的外面翻转,num为负,左边往视窗的里面翻转
rotateZ(num):
合写
rotate3D(x倍数,y倍数,z倍数,度数)
rotate3D(1,2,3,40deg)
x轴旋转40度,y轴旋转80度,z轴旋转120度
查看元素旋转后从后面看能否看到元素的内容
backface-visibility
值
1.visible 默认值,能看到
2.hidden 不能看到
transform: rotateY(180deg);
transform: translate3d(0,0,800px);
03关键帧动画
关键帧动画和过渡动画的区别
1.关键帧动画触发时机是,只要添加关键帧动画,就会立即执行动画
2.关键帧动画可以对动画的流程进行控制
关键帧动画的使用流程
1.先封装一组关键帧动画,使用关键字 @keyframes
2.给需要设置动画的元素添加动画属性
@keyframes move {
from{
left: 0;
}
to{
left: 400px;
}
}
1.设置动画名称
animation-name:值是通过@keyframes 声明的名称
2.设置动画的持续时间
animation-duration:10s;
以上两个属性不能省略
3.设置动画的运动函数
animation-timing-function: 值和过渡动画函数一致都是贝塞尔曲线
4.设置动画的延迟时间
animation-delay: 10s;
5.设置动画的重复次数
animation-iteration-count: num;
值是一个正整数,表示次数,默认为1次,也可以是 infinite 表示无限次数
6.设置动画的方向
animation-direction:
值
normal 默认值,正方向运行
reverse 反方向运行
alternate 当运行次数为奇数时,正方向运行,偶数时,反方向运行
alternate-reverse 当运行次数为奇数时,反方向运行,偶数时,正方向运行
7.设置动画最后一帧的状态
animation-fill-mode
值:
forwards 以动画的最后一帧作为动画的最后呈现状态
both:状态和forwards相同
backwards 默认值。以动画开始时候的第一帧作为动画的最后呈现状态
8.合写
animation: name duration timing-function delay iteration-count direction fill-mode;
合写的时候,除了 name duration 不能省略,其他均可视情况省略
/* animation: name duration timing-function delay iteration-count direction fill-mode; */
/* animation: move 10s infinite; */
/* 设置动画名称 */
animation-name: move;
/* 设置动画的持续时间 */
animation-duration: 2s;
/* 设置动画的运动函数 */
animation-timing-function: ease-in-out;
/* 设置动画的重复次数 */
animation-iteration-count: 2;
/* 设置动画的方向 */
animation-direction: alternate-reverse;
/* 设置动画最后一帧的状态 */
animation-fill-mode:backwards;
/* 合写 */
animation: move 2s infinite;
8.控制动画的播放状态
animation-play-state
值:
paused 暂停
running 运动
如:
.wp:hover{
/* 控制动画的播放状态 */
animation-play-state: paused;
}