CSS动画之转换模块

2D转换模块:注意点:1.可以类似于过渡模块一样简写,但是这里不是用逗号隔开而是用空格
2.2D的转换模块会修改元素的坐标系,所以旋转之后的平移就不是水平平移
格式:旋转:transform: rotate(30deg)旋转角度
平移:transform: translate(50px,100px);平移的坐标系
缩放:transform: scale(2,4);缩放的倍数
翻转:transform: skew(30deg,20deg);沿x轴y轴旋转的角度
矩阵:transform:matrix(0.866,0.5,-0.5,0.866,0,0);使用六个值的矩阵。达到以上所有功能
综合:transform: rotate(30deg) translate(50px,10px) scale(2,4) skew(30deg,30deg);用空格隔开
形变中心点:transform-origin:50% 50% 可以用百分比,像素,特殊关键字,默认旋转是通过自己的中心点做参考,可以通过修改形变中心点来改变旋转
旋转轴向:transform:rotateX(45deg);transform:rotateY(45deg);transform:rotateZ(45deg);一般默认旋转是垂直桌面的Z轴旋转的
透视属性:perspective:500px 近大远小(一般结合旋转轴向来看,更加直观)值是距离物体的多远
注意点:一定要把透视属性设置到你要观察的元素的父元素(上级就行,设置给它爷爷也行)上面!!!!!
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>2D转换</title>
    <style>
        *{
            padding: 0;
            margin: 0;
        }
        ul{
            list-style: none;
            width: 800px;
            height: 800px;
            background-color: #5bc0de;
            margin: 0 auto;
        }
        li{
            width: 60px;
            height: 50px;
            background-color: yellow;
            margin: 0 auto;
            margin-bottom: 100px;
            text-align: center;
            line-height: 50px;

        }
        .box2{
            transform: rotate(30deg);
        }
        .box3{
            transform: translate(50px,10px);
        }
        .box4{
            transform: scale(2,4);
        }
        .box5{
            transform: skew(30deg,30deg);
        }
        .box6{
            transform: rotate(30deg) translate(50px,10px) scale(2,4) skew(30deg,30deg);
        }

    </style>
</head>
<body>

<ul>
    <li class="box1">正常</li>
    <li class="box2">旋转</li>
    <li class="box3">平移</li>
    <li class="box4">缩放</li>
    <li class="box5">翻转</li>
    <li class="box6">综合</li>
</ul>
</body>
</html>
1.2D和3D的区别:2D就是没有厚度只有宽高,3D就是除了宽高还加了厚度
默认情况下所有的元素都是2D元素
2.如何呈现3D:类似于透视,给其父元素添加transform-style:preserve-3d就行
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>3D转换</title>
 6     <style>
 7         *{
 8             padding: 0;
 9             margin: 0;
10         }
11         .father{
12             background-color:skyblue;
13             width: 200px;
14             height: 200px;
15             margin: 100px auto;
16             perspective: 500px;
17             transform: rotateY(0deg);
18             transform-style: preserve-3d;
19         }
20         .son{
21             background-color: red;
22             width: 100px;
23             height: 100px;
24             margin: 20px auto;
25             transform: rotateY(45deg);
26         }
27     </style>
28 </head>
29 <body>
30 <div class="father">
31     <div class="son"></div>
32 </div>
33 </body>
34 </html>

 

posted @ 2018-03-16 23:24  myErebos  阅读(216)  评论(0编辑  收藏  举报