2D动画
html
<body> <section> <section> <section></section> </section> </section> </body>
css
body{ background-color: black; } body>section{ width: 300px; height: 300px; background-color: blue; margin: 180px auto 10px; } body>section>section{ width: 300px; height: 300px; background-color: green; opacity: 0.8; /*transform 该属性允许我们对元素进行旋转、缩放、移动或倾斜*/ /*使......改变*/ /*transform: translate(50px,50px);*/ /*translate 平移 两个值 第一个值表示水平方向 第二个值代表垂直放向*/ /*transform: scale(0.8,0.3);*/ /*scale 缩放*/ /*transform: rotate(-30deg);*/ /*ratate 旋转*/ /*transform-origin: right bottom;*/ /*图形变换基准点*/ /*transform: skew(30deg,30deg);*/ /*skew 倾斜*/ /*transform: scale(0.8,0.6) translate(10px,10px) rotate(30deg) skew(20deg,20deg)*/ /*transform: matrix(0.6,0,0,0.6,0,0);*/ /*缩小 0.6*/ transform: matrix(-0.52,-0.3,-0.3,-0.52,0,0); } body>section>section>section{ width: 300px; height: 300px; background-color: yellow; }
3D动画
html
同上
css
body{ background-color: black; } section{ opacity: 0.85; perspective: 1500px; /*创建透视场景 让子元素形成透视效果 变换中也支持透视函数 perspective 属性设置镜头到元素平面的距离*/ transform-origin: 80% 50%; /*调整观察者的位置 属性规定了镜头在平面上的位置 默认是放在元素的中心*/ transform-style: preserve-3d; } body>section{ width: 300px; height: 300px; background-color: blue; margin: 200px auto 10px; transform: rotateY(30deg); } body>section>section{ width: 300px; height: 300px; background-color: green; margin: 0; transform: rotateY(70deg); } body>section>section>section{ width: 300px; height: 300px; background-color: yellow; margin: 0; transform: translate3d(0,0,60px) rotate3d(0,1,1,30deg) scale3d(0,0,80px); }
演示
推荐阅读