css3 3d动画

在学习3d动画之前,我们要先了解一个概念,就是我们在网页上的所展示的内容,他是一个2d的平面,要想在2d空间内展示出3d的效果,仅凭x轴和y轴是无法做到的,因此我们需要在添加一个轴的方向,z轴,这条轴你可以看作是屏幕正对着我们的视线。

transform-styleperspective这两个属性对与3d来说非常重要,他们都是需要添加在附件盒元素上面的,但他们又不能同时加在同一父级元素上面 详细具体区别请参考 👉 详情

backface-visibility另外这个属性也有必要了解一下,他是定义元素在不面对屏幕时是否可见。什么意思呢,就是说当一个元素沿Y轴旋转180deg之后,相对于屏幕而言他是否可见,利用这一属性,我们可以做个纸牌翻转的demo 例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>翻转</title>
<style>
.background{
width: 500px;
height: 500px;
border: 1px solid red;
background: url(./images/1.jpg) no-repeat center;
background-size: cover;
}

.front,.back{
top: 0;
left: 0;
position: absolute;
width: 100%;
height: 100%;
line-height: 300px;
text-align: center;
}
.front{
background-color: red;
z-index: 1;
/* 隐藏背面旋转元素不可见 */
backface-visibility: hidden;
}
.back{
background-color: green;
transform: rotateY(180deg);

}
.trans{
position: relative;
width: 300px;
height: 300px;
transition: all .6s;
transform-style: preserve-3d;
-webkit-transform-style: preserve-3d;
border: 1px solid black;
/* perspective: 500px; */
}
.trans:hover{
transform: rotateY(180deg);
}
</style>
</head>
<body>
<div class="trans">
<!-- <div class="background"></div> -->
<div class="front">正面</div>
<div class="back">反面</div>
</div>
</body>
</html>

还有就是我们在做案例的时候,心中一定要有一个3d的网格图形界面,知道自己所写属性代表的每一个含义,css说实话这些东西只要你想学,就没有你学不会的。

一下还做了两个案例,一个是旋转木马,另一个是正方体盒面,你们可以先动手自己去做一下,尝试以自己的思想去把他给做出来,然后再对比我的,你可以把你的想法发出来,我们一起努力进步哦,前端道路深远且到长,让我们共同求进退。

魔方体demo:

在这里插入图片描述

旋转木马demo:

案例下载:
3d动画demo下载