web CSS3 實現3D旋轉木馬

3D 旋轉木馬是CSS中常見的特效之一,旋轉木馬能夠有多種方法實現,這裏我使用純CSS實現這種動畫的效果。html

 

    簡要介紹一下重點動畫

transform: rotateY(60deg) translateZ(300px);
這是必須先旋轉後 沿着z軸移動,否則會錯亂,translateZ是沿着Z軸移動,其值越大,咱們看見的圖像就越大。
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 
 4 <head>
 5     <meta charset="UTF-8">
 6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 7     <title>Document</title>
 8     <style>
 9         body {
10             perspective: 1000px;
11         }
12         
13         section {
14             position: relative;
15             width: 300px;
16             height: 200px;
17             margin: 150px auto;
18             transform-style: preserve-3d;
19             animation: roate 10s linear infinite;
20         }
21         
22         section div {
23             position: absolute;
24             top: 0;
25             left: 0;
26             width: 100%;
27             height: 100%;
28             /* background: url(media/dog.jpg) no-repeat; */
29             background-color: yellow;
30         }
31         
32         section:hover {
33             animation-play-state: paused;
34         }
35         
36         @keyframes roate {
37             0% {
38                 transform: rotateY(0);
39             }
40             100% {
41                 transform: rotateY(360deg);
42             }
43         }
44         
45         section div:nth-child(1) {
46             transform: rotateY(0) translateZ(300px);
47             /* 能夠添加本身想添加的圖片 這裏用背景色pink代替 下面都同樣*/
48             background-color: pink;
49         }
50         
51         section div:nth-child(2) {
52             transform: rotateY(60deg) translateZ(300px);
53         }
54         
55         section div:nth-child(3) {
56             transform: rotateY(120deg) translateZ(300px);
57         }
58         
59         section div:nth-child(4) {
60             transform: rotateY(180deg) translateZ(300px);
61         }
62         
63         section div:nth-child(5) {
64             transform: rotateY(240deg) translateZ(300px);
65         }
66         
67         section div:nth-child(6) {
68             transform: rotateY(300deg) translateZ(300px);
69         }
70     </style>
71 </head>
72 
73 <body>
74     <section>
75         <div></div>
76         <div></div>
77         <div></div>
78         <div></div>
79         <div></div>
80         <div></div>
81     </section>
82 </body>
83 
84 </html>
相關文章
相關標籤/搜索