css空间转换 及动画效果

417 阅读2分钟

一、空间转换 3D

3D坐标系

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

1637917140179.png

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

1.值,否则反之 2.Y轴数值越大越往下 ,是正值,否则反之 3.Z轴, (是指向屏幕面前我们的)越大,是正值朝向我们,否则反之

3D位移

有完整写法:

transform: translate3d(x, y, z);

很多情况下 ,比较喜欢分开写

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

透视

透视的作用:空间转换时,为元素添加远大近小 ,近实远虚的效果 让我们切实看见 语法: perspective: 800px;

透视注意事项:

1.取值范围经常在 800px-1200px之间 (值越小效果越明显)

2.一定給父元素添加

3.透视距离也被称为视距,所谓的视距就是人眼睛到屏幕的距离

其中d为透视的距离

z是translatez的距离 这个距离离我们越近 数值为正 盒子越大 反之则越小

1637917549182.png

3D旋转

有了视距的加持我们3d旋转的效果会更加明显 rotatex 类似单杠旋转 水平X轴好比那根横着的单杠运动员绕着它旋转

1.gif

特别注意:我们轴默认的旋转中心是在盒子中心位置

image.png

效果展示:

image.png

rotateY

类似钢管舞 围绕那根y轴旋转

image.png

image.png

左手法则

一定要搞清楚x轴和Y轴是如何旋转的,旋转度数是正值还是负值

1637918083401.png 规则:

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

立体呈现

让子盒子在父盒子内有空间的展示,此时可以给父亲添加 transform-style: preserve-3d;

二、动画(重点)

动画的最大特点是不用鼠标触发 ,自动的 连续的 反复的执行某些动画效果

动画的使用 分定义和调用: 1.定义:

image.png

frmo表示 初始状态 to表示结束状态 也可用0% 100%代替

image.png

2调用:

image.png 调用动画勿忘带上动画名称 执行时间和延迟执行单位s不要忘记

动画属性

image.png

1.动画名字惨遭css选择器类名 2.动画时长和延迟时间别忘记带上单位s 3.infinite无线循环动画(重复次数) 4.alternate 为反方向 左右上下来回执行动画(类似跑马灯) 5. forwards 动画结束停留最后一帧的状态 ,不循环状态使用 6. linear 让动画以匀速运行 7.steps帧动画 8.animation-play-state:paused 鼠标经过暂停动画 配合hover使用

鼠标经过暂停动画

image.png

多组动画 : 中间以,号隔开

image.png