16-3D形变,平移和旋转,关键帧动画

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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值