web移动端知识点复习(二)

本文详细介绍了CSS3中的3D空间转换,包括3D坐标系、3D位移、透视、3D旋转(rotateX和rotateY)以及左手法则。此外,还讲解了如何通过transform-style实现立体呈现。接着,文章重点讨论了CSS3动画的使用,包括动画属性、动画定义与调用,以及如何通过animation属性控制动画行为。同时,提到了transition和animation的区别,以及perspective和transform-style在3D效果中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、空间转换3D

1.1 3D坐标系

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

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

  • X 轴 往右越大,是正值, 否则反之
  • Y 轴 往下越大,是正值,否则反之
  • Z轴 (指向我们)越大,是正值,否则反之

1.2 3D位移

有完整写法:

 transform: translate3d(x, y, z);

只不过在很多情况下,我们经常喜欢分开写:

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

1.3 透视

透视的作用: 空间转换时,为元素添加近大远小、近实远虚的视觉效果

语法:

 perspective: 800px;

透视注意事项:

  1. 取值范围经常在 800px ~ 1200px 之间。
  2. 一定给父亲添加
  3. 透视距离也称为视距,所谓的视距就是人的眼睛到屏幕的距离。
    • 其中 d 为透视的距离
    • z 是 translateZ 的距离, 这个距离靠近我们,盒子越大

1.4 3D旋转

1.4.1 rotateX

注意:默认的旋转中心在盒子的中心位置。

 body {
     /* 父级添加透视 */
     perspective: 400px;
}
img {
    transition: all 1s;
}
img:hover {
    transform: rotateX(360deg);
}

1.4.2 rotateY

body {
    perspective: 400px;
}
img {
    transition: all 1s;
}
img:hover {
    transform: rotateY(360deg);
}

1.5 左手法则

在这里插入图片描述

一定要搞清楚X轴和Y轴如何旋转的,旋转的度数是正值还是负值。
规则:

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

6. 立体呈现

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

 transform-style: preserve-3d;

3D呈现: transform-style属性

  1. 控制子元素是否开启三维立体环境
  2. transform-style: flat 子元素不开启3d立体空间
  3. 代码写给父级,但是影响的是子盒子
  4. transform-style: preserve-3d是让子元素保持3D效果

二、动画(重点)

动画最大的特点可以不用鼠标触发,自动的,反复的执行某些动画。

动画使用分为定义和调用:

  1. 定义:
    /* 1. 定义的动画 */
    @keyframes dance {
        from {
            transform: scale(1)
        }
        to {
            transform: scale(1.5)
        }
    }
    
    或者是
     /* 1. 定义的动画 */
        @keyframes dance {
           0% {
            transform: scale(1)
          } 
          100% {
            transform: scale(1.5)
          }
        }
    
  2. 调用
    img {
        width: 200px;
        /* 2. 使用动画  animation: 动画名称 执行时间;   infinite 循环*/
        animation: dance .5s infinite;
    }
    

2.1 动画属性

在这里插入图片描述

  1. 动画名字参照css类选择器命名
  2. 动画时长和延迟时间别忘了带单位 s
  3. infinate 无限循环动画(重复次数)
  4. alternate 为反向 就是左右来回执行动画(跑马灯)
  5. forwards 动画结束停留在最后一帧状态, 不循环状态使用
  6. linear 让动画匀速执行

2.1.1 鼠标经过暂停动画

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

2.1.2 多组动画

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

总结

1. transition 和 animation的区别

transition: width 2s ease 1s; 

transition: 属性 花费时间 速度曲线 延时时间;

animation: 动画名称 花费时间 速度曲线 延时时间 重复次数 动画方向 执行完毕的状态;

  • 过渡经常配合鼠标经过使用,只能设置起始和结束状态。
  • 动画可以自动执行,而且无限循环等。(其中 动画名称和花费时间必须要写),里面可以有很多的形态,比如 0%, 10% … 100%

2. perspective 和 transform-style 区别

  • perspective 是透视,可以让电脑模拟 3d效果, 实现近大远小的效果。
  • transform-style 立体呈现 可以让 子元素 里面按照设置位移,旋转,缩放,扭曲等。如果不给父元素这个属性,这里面所有的子盒子都是平面的。
  • 正常情况下: 爷爷设置perspective、父亲设置transform-style: preserve-3d、孩子们设置位移,旋转,缩放,扭曲等
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值