CSS3动画特效图文详解(附代码)(3)

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        html,body{height:100%;}

body{background-color:#DE8910;}.rocket{position:absolute;left:100px;top:600px;height:120px;transform:translate(-200px ,200px) rotate(45deg);transition:all 1s ease-in;}

body:hover.rocket{transform:translate(500px,-500px) rotate(45deg);}</style>
</head>
<body>
    <img  src="https://www.linuxidc.com/images/rocket.png" alt=""/>
</body>
</html>

上方代码中,我们将 transform 的两个小属性合并起来写了。

小火箭图片的url:upload/2018_02/1802181531733320.png

案例2:扑克牌

rotate 旋转时,默认是以盒子的正中心为坐标原点的。如果想改变旋转的坐标原点,可以用transform-origin属性。格式如下:

transform-origin: 水平坐标 垂直坐标;

transform-origin: 50px 50px;

transform-origin: center bottom;  //旋转时,以盒子底部的中心为坐标原点

我们来看一下 rotate 结合 transform-origin 的用法举例。

代码如下:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        body {/*background-color: #eee;*/}.box{width:300px;height:440px;margin:100pxauto;position:relative;}

img {width:100%;transition: all 1.5s;position:absolute;/* 既然扑克牌是叠在一起的,那就都用绝对定位 */left:0;top:0;transform-origin:centerbottom;/*旋转时,以盒子底部的中心为坐标原点*/box-shadow:003px0#666;}.box:hover img:nth-child(6) {transform: rotate(-10deg);}.box:hover img:nth-child(5) {transform: rotate(-20deg);}.box:hover img:nth-child(4) {transform: rotate(-30deg);}.box:hover img:nth-child(3) {transform: rotate(-40deg);}.box:hover img:nth-child(2) {transform: rotate(-50deg);}.box:hover img:nth-child(1) {transform: rotate(-60deg);}.box:hover img:nth-child(8) {transform: rotate(10deg);}.box:hover img:nth-child(9) {transform: rotate(20deg);}.box:hover img:nth-child(10) {transform: rotate(30deg);}.box:hover img:nth-child(11) {transform: rotate(40deg);}.box:hover img:nth-child(12) {transform: rotate(50deg);}.box:hover img:nth-child(13) {transform: rotate(60deg);}</style>
</head>
<body>
<div>
    <img src="https://www.linuxidc.com/images/pk1.png"/>
    <img src="https://www.linuxidc.com/images/pk2.png"/>
    <img src="https://www.linuxidc.com/images/pk1.png"/>
    <img src="https://www.linuxidc.com/images/pk2.png"/>
    <img src="https://www.linuxidc.com/images/pk1.png"/>
    <img src="https://www.linuxidc.com/images/pk2.png"/>
    <img src="https://www.linuxidc.com/images/pk1.png"/>
    <img src="https://www.linuxidc.com/images/pk2.png"/>
    <img src="https://www.linuxidc.com/images/pk1.png"/>
    <img src="https://www.linuxidc.com/images/pk2.png"/>
    <img src="https://www.linuxidc.com/images/pk1.png"/>
    <img src="https://www.linuxidc.com/images/pk2.png"/>
    <img src="https://www.linuxidc.com/images/pk1.png"/>
</div>
</body>
</html>

效果如下:

CSS3动画特效图文详解(附代码)

4、倾斜

暂略。

3D 转换 1、旋转:rotateX、rotateY、rotateZ

3D坐标系(左手坐标系)

CSS3动画特效图文详解(附代码)

如上图所示,伸出左手,让拇指和食指成“L”形,大拇指向右,食指向上,中指指向前方。拇指、食指和中指分别代表X、Y、Z轴的正方向,这样我们就建立了一个左手坐标系。

浏览器的这个平面,是X轴、Y轴;垂直于浏览器的平面,是Z轴。

旋转的方向:(左手法则)

左手握住旋转轴,竖起拇指指向旋转轴的正方向,正向就是其余手指卷曲的方向

从上面这句话,我们也能看出:所有的3d旋转,对着正方向去看,都是顺时针旋转。

格式:

transform: rotateX(360deg);    //绕 X 轴旋转360度

transform: rotateY(360deg);    //绕 Y 轴旋转360度

transform: rotateZ(360deg);    //绕 Z 轴旋转360度

格式举例:

(1)rotateX 举例:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/96a762102a305ac28fa3663628a1526d.html