浅学一点空间转换3D和动画知识

一 . 空间转换3D

3D坐标系

3D坐标系比2D多了一个Z轴.

一定要记住3个坐标轴取值的正反:

  • X 轴 往右越大,是正值, 否则反之

  • Y 轴 往下越大,是正值,否则反之

  • Z轴 (指向我们)越大,是正值,否则反之

1 . 3D位移

完整写法 :

 transform: translate3d(x, y, z);

分开写法 :

transform: translateX(100px);
transform: translateY(100px);
transform: translateZ(100px);

2 . 3D旋转

绕x轴旋转 : 

transform: rotateX(90deg);

绕y轴和z轴同理.

完整写法 : 

div:hover {
            transform: rotate3d(0, 0.5, 1, 90deg);
        }

        /* 3D旋转的综合写法 rotate3d(x, y, z, 度数) x,y,z取0-1,类似于opacity */
        /* transform: rotate3d(0,0.5,1,90deg); *

左手法则

规则:

  1. 大拇指指向X轴正向方(右), 则四指指向的方向是旋转的方向

  2. 大拇指指向Y轴正向方(下), 则四指指向的方向是旋转的方向

3 . 透视

语法规范 : 

perspective: 800px;

 /* 1. 透视给父级添加 */
 /* 2. 近大远小 近实远虚 */
 /* 3. 透视取值在800px ~ 1200px  */

4 . 立体呈现

让子盒子在父盒子内有空间的展示,此时可以给父亲添加

 transform-style: preserve-3d;

二 . 动画

1 . 动画步骤

首先 定义动画 : 

/* 定义动画  */
        @keyframes move {

            /* 起始位置 */
            0% {}

            25% {
                transform: translate(800px, 0) rotateZ(360deg);
            }

            50% {
                transform: translate(800px, 400px) rotateZ(720deg);
            }

            75% {
                transform: translate(0, 400px) rotateZ(1080deg);
            }

            /* 结束位置 */
            100% {
                transform: translate(0, 0) rotateZ(1440deg);
            }

        }

接着 调用动画 : 

animation: move 5s linear 1s infinite alternate forwards;

2 . 动画属性

  1. 动画名字参照css类选择器命名

  2. 动画时长和延迟时间别忘了带单位 s

  3. infinate 无限循环动画(重复次数)

  4. alternate 为反向 就是左右来回执行动画(跑马灯)

  5. forwards 动画结束停留在最后一帧状态, 不循环状态使用

  6. linear 让动画匀速执行

/* 调用动画 animation: 动画名 执行时间 动画速度 开始时间 循环次数 动画方向 结束状态 */
/* 动画结束状态不能和动画循环次数和动画方向同时使用 */
/* animation: backwards;结束停在第一帧 */
/* animation: move 5s linear 1s forwards; */

3 . 鼠标经过暂停动画

/* 鼠标经过box,  则 ul 停止动画 */
.box:hover ul {
    animation-play-state: paused;
}

4 . 多组动画用逗号隔开

/* 我们想要2个动画一起执行  animation: 动画1, 动画2, ... 动画n */
animation: run 1s steps(12) infinite, move 5s linear forwards;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值