纯css3制作写轮眼开眼及进化过程

原文: 纯css3制作写轮眼开眼及进化过程

今天是火影忍者(漫画)宣告完结的日子,也是我首发的第一个随笔。看过火影的朋友都知道,写轮眼是什么,这里就不多说了。下面就直接展示整个效果,上张图,先睹为快:

目前已经测试 IE10、Firefox浏览器、Chrome浏览器、Opera浏览器、360浏览器(两种模式)兼容已通过。

温馨提示:以上浏览器版本号均最新的;动画过程中每个阶段大约会停留5秒钟,希望你不会中幻术^_^。

在线演示    源码下载


HTML代码:

 1 <div class="container">
 2     <!--左眼开始-->
 3     <div class="eyesBoxs pullLeft">
 4         <div class="profile skewLeft"></div>
 5         <div class="shadow skewLeft"></div>
 6         <div class="basic ani-narrow"></div>
 7         <div class="eyes ani-zoom">
 8             <div class="line">           
 9                 <div class="hook ani-rotateHook">
10                     <span class="bar"><b></b></span>
11                     <span class="bar"><b></b></span>
12                     <span class="bar"><b></b></span>
13                 </div>
14                 <div class="tube ani-rotateTube">
15                     <span class="bar"></span>
16                     <span class="bar"></span>
17                     <span class="bar"></span>
18                 </div>
19             </div>
20         </div>
21         <div class="trans skewLeft">
22             <span class="bar ani-shadow"></span>
23         </div>
24     </div>
25     <!--左眼结束-->
27     <!--右眼开始-->
28     <div class="eyesBoxs pullRight">
29         <div class="profile skewRight"></div>
30         <div class="shadow skewRight"></div>
31         <div class="basic ani-narrow"></div>
32         <div class="eyes ani-zoom">
33             <div class="line">           
34                 <div class="hook ani-rotateHook">
35                     <span class="bar"><b></b></span>
36                     <span class="bar"><b></b></span>
37                     <span class="bar"><b></b></span>
38                 </div>
39                 <div class="tube ani-rotateTube">
40                     <span class="bar"></span>
41                     <span class="bar"></span>
42                     <span class="bar"></span>
43                 </div>
44             </div>
45         </div>
46         <div class="trans skewRight">
47             <span class="bar ani-shadow"></span>
48         </div>
49     </div>
50     <!--右眼结束-->
51 </div>

CSS代码:

  1 *{margin:0;padding:0;}
  2 .container{ width:800px; height:200px; margin:30px auto;overflow:hidden; background:#000; position:relative;}
  3 .eyesBoxs{width:130px;height:70px;position:absolute;top:50px;}
  4 .pullLeft{left:100px;}
  5 .pullRight{right:100px;}
  6 .profile{
  7     width:130px;
  8     height:70px;
  9     background:#fff;
 10     position:absolute;
 11     top:0;
 12     left:0;
 13     overflow:hidden;
 14     border-radius:0 70px 0 50px;
 15 }
 16 .shadow{
 17     display:block;
 18     width:130px;
 19     height:70px;
 20     position:absolute;
 21     top:0;
 22     z-index:5;
 23     border-radius:0 90px 0 60px;
 24     box-shadow:5px 12px 2px 5px rgba(0,0,0,.25) inset;
 25 }
 26 .skewLeft{
 27     transform:skewX(15deg);
 28     -webkit-transform:skewX(15deg);
 29     -o-transform:skewX(15deg);
 30 }
 31 .skewRight{
 32     transform:skewX(-15deg) scale(-1,1);
 33     -webkit-transform:skewX(-15deg) scale(-1,1);
 34     -o-transform:skewX(-15deg) scale(-1,1);
 35 }
 36 .basic{
 37     width:60px;
 38     height:60px;
 39     background:#000;
 40     position:absolute;
 41     top:50%;
 42     left:50%;
 43     z-index:10;
 44     margin-top:-30px;
 45     border-radius:60%;
 46 }
 47 .basic:before{
 48     content:"";
 49     display:block;
 50     width:10px;
 51     height:11px;
 52     position:absolute;
 53     left:15px;
 54     top:15px;
 55     z-index:100;
 56     border-radius:60%;
 57     background-image:radial-gradient(circle,rgb(225,225,225),rgb(225,225,225),rgba(225,225,225,0.9),rgba(225,225,225,0.3));
 58     -webkit-background-image:radial-gradient(circle,rgb(225,225,225),rgb(225,225,225),rgba(225,225,225,0.9),rgba(225,225,225,0.3));
 59     -o-background-image:radial-gradient(circle,rgb(225,225,225),rgb(225,225,225),rgba(225,225,225,0.9),rgba(225,225,225,0.3));
 60 }
 61 .pullLeft .basic{
 62     margin-left:-33px;
 63 }
 64 .pullRight .basic{
 65     margin-left:-27px;
 66 }
 67 .eyes{
 68     width:55px;
 69     height:55px;
 70     background:#ff0000;
 71     position:absolute;
 72     top:8px;
 73     border-radius:60%;
 74     box-shadow:0 0 2px 4px #bd0000 inset,0 0 0 2px #000;
 75 }
 76 .pullLeft .eyes{left:35px;}
 77 .pullRight .eyes{right:35px;}
 78 .eyes .line{
 79     width:64%;
 80     height:64%;
 81     background:#ff0000;
 82     position:absolute;
 83     right:0;
 84     left:0;
 85     top:10px;
 86     margin:0 auto;
 87     border-radius:60%;
 88     box-shadow:0 0 2px 0 #b20000 inset;
 89 }
 90 .eyes .line:before{
 91     content:"";
 92     display:block;
 93     width:10px;
 94     height:11px;
 95     position:absolute;
 96     left:3px;
 97     top:4px;
 98     z-index:100;
 99     border-radius:60%;
100     background-image:radial-gradient(circle,rgb(225,225,225),rgb(225,225,225),rgba(225,225,225,0.7),rgba(225,225,225,0.3));
101     -webkit-background-image:radial-gradient(circle,rgb(225,225,225),rgb(225,225,225),rgba(225,225,225,0.7),rgba(225,225,225,0.3));
102     -o-background-image:radial-gradient(circle,rgb(225,225,225),rgb(225,225,225),rgba(225,225,225,0.7),rgba(225,225,225,0.3));
103 }
104 .eyes .line:after{
105     content:"";
106     display:block;
107     width:10px;
108     height:10px;
109     position:absolute;
110     background:#000;
111     right:0;
112     left:-1px;
113     top:13px;
114     z-index:100;
115     margin:0 auto;
116     border-radius:60%;
117     transform:rotate(150deg);
118     -webkit-transform:rotate(150deg);
119     -o-transform:rotate(150deg);
120     animation:colour 0.5s ease-in 7s;
121     -webkit-animation:colour 0.5s ease-in 7s;
122     -o-animation:colour 0.5s ease-in 7s;
123 }
124 @keyframes colour{
125     0%{
126         background:#000;
127     }
128     100%{
129         background:#f00;
130     }
131 }
132 @-webkit-keyframes colour{
133     0%{
134         background:#000;
135     }
136     100%{
137         background:#f00;
138     }
139 }
140 @-o-keyframes colour{
141     0%{
142         background:#000;
143     }
144     100%{
145         background:#f00;
146     }
147 }
148 .hook{
149     width:92%;
150     height:92%;
151     position:absolute;
152     right:0;
153     left:0;
154     top:5%;
155     margin:0 auto;
156     border-radius:60%;
157 }
158 .hook .bar{
159     display:block;
160     width:100%;
161     height:100%;
162     position:absolute;
163     left:0;
164     top:0;
165     border-radius:60%;
166 }
167 .hook .bar b{
168     display:block;
169     width:8px;
170     height:8px;
171     background:#000;
172     position:absolute;
173     left:0;
174     bottom:0;
175     border-radius:60%;
176 }
177 .hook .bar b:after{
178     content:"";
179     width:8px;
180     height:8px;
181     border-color:transparent transparent #000 transparent;
182     border-style:solid;
183     border-width:0 0 5px 0;
184     position:absolute;
185     top:-1px;
186     left:-3px;
187     z-index:100;
188     border-radius:0 0 0 70%;
189     transform:rotate(-75deg);
190     -webkit-transform:rotate(-75deg);
191     -o-transform:rotate(-75deg);
192 }
193 .hook .bar:nth-child(1){
194     transform:rotate(10deg);
195     -webkit-transform:rotate(10deg);
196     -o-transform:rotate(10deg);
197 }
198 .hook .bar:nth-child(2){
199     transform:rotate(130deg);
200     -webkit-transform:rotate(130deg);
201     -o-transform:rotate(130deg);
202 }
203 .hook .bar:nth-child(3){
204     transform:rotate(250deg);
205     -webkit-transform:rotate(250deg);
206     -o-transform:rotate(250deg);
207 }
208 .tube{
209     width:93%;
210     height:93%;
211     position:absolute;
212     right:0;
213     left:0px;
214     top:2px;
215     margin:0 auto;
216     background:#000;
217     border-radius:60%;
218 }
219 .tube .bar{
220     display:block;
221     width:10px;
222     height:20px;
223     border-style:solid;
224     border-width:0 0 0 10px;
225     border-color:transparent transparent transparent black;
226     position:absolute;
227     border-radius:100% 0 0 0;
228 }
229 .tube .bar:nth-child(1){
230     top:-10px;
231     left:2px;
232     transform:rotate(-10deg);
233 }
234 .tube .bar:nth-child(2){
235     bottom:0px;
236     right:-10px;
237     transform:rotate(105deg);
238     -webkit-transform:rotate(105deg);
239     -o-transform:rotate(105deg);
240 }
241 .tube .bar:nth-child(3){
242     bottom:-3px;
243     left:-10px;
244     transform:rotate(235deg);
245     -webkit-transform:rotate(235deg);
246     -o-transform:rotate(235deg);
247 }
248 .trans{
249     width:130px;
250     height:70px;
251     position:absolute;
252     overflow:hidden;
253     top:0;
254     left:0;
255     border-radius:0 70px 0 50px;
256 }
257 .trans .bar{
258     display:block;
259     width:9px;
260     height:9px;
261     background:#000;
262     position:absolute;
263     top:50%;
264     z-index:2;
265     margin:-4px 0 0 -4px;
266     border-radius:60%;
267 }
268 .trans .bar:after{    
269     content:"";
270     display:block;
271     width:11px;
272     height:12px;
273     position:absolute;
274     top:-13px;
275     left:-13px;
276     z-index:100;
277     border-radius:60%;
278     background:rgba(250,250,250,.85);
279 }
280 .pullLeft .trans .bar{
281     transform:skewX(-15deg);
282     -webkit-transform:skewX(-15deg);
283     -o-transform:skewX(-15deg);
284 }
285 .pullLeft .trans .bar{left:48%;}
286 .pullRight .trans .bar{
287     transform:skewX(-15deg) scale(-1,1);
288     -webkit-transform:skewX(-15deg) scale(-1,1);
289     -o-transform:skewX(-15deg) scale(-1,1);
290 }
291 .pullRight .trans .bar{right:48%;}
292 .ani-narrow{
293     animation:ani-narrow 0.5s linear 1s;
294     -webkit-animation:ani-narrow 0.5s linear 1s;
295     -o-animation:ani-narrow 0.5s linear 1s;
296 }
297 @keyframes ani-narrow{
298     from{
299         transform:scale(1);
300     }
301     to{
302         opacity:0;
303         transform:scale(0);
304     }
305 }
306 @-webkit-keyframes ani-narrow{
307     from{
308         -webkit-transform:scale(1);
309     }
310     to{
311         opacity:0;
312         -webkit-transform:scale(0);
313     }
314 }
315 @-o-keyframes ani-narrow{
316     from{
317         -o-transform:scale(1);
318     }
319     to{
320         opacity:0;
321         -o-transform:scale(0);
322     }
323 }
324 .ani-zoom{
325     animation:ani-zoom 11s linear 0.8s;
326     -webkit-animation:ani-zoom 11s linear 0.8s;
327     -o-animation:ani-zoom 11s linear 0.8s;
328 }
329 @keyframes ani-zoom{
330     0%{
331         opacity:0;
332         transform:scale(0);
333     }
334     6%{
335         opacity:1;
336         transform:scale(1);
337     }
338     95%{
339         opacity:1;
340         transform:scale(1);
341     }
342     100%{
343         opacity:0;
344         transform:scale(1.5);
345     }
346 }
347 @-webkit-keyframes ani-zoom{
348     0%{
349         opacity:0;
350         -webkit-transform:scale(0);
351     }
352     6%{
353         opacity:1;
354         -webkit-transform:scale(1);
355     }
356     95%{
357         opacity:1;
358         -webkit-transform:scale(1);
359     }
360     100%{
361         opacity:0;
362         -webkit-transform:scale(1.5);
363     }
364 }
365 @-o-keyframes ani-zoom{
366     0%{
367         opacity:0;
368         -o-transform:scale(0);
369     }
370     6%{
371         opacity:1;
372         -o-transform:scale(1);
373     }
374     95%{
375         opacity:1;
376         -o-transform:scale(1);
377     }
378     100%{
379         opacity:0;
380         -o-transform:scale(1.5);
381     }
382 }
383 .ani-rotateHook{
384     animation:ani-rotateHook 5s ease-in 2.5s;
385     -webkit-animation:ani-rotateHook 5s ease-in 2.5s;
386     -o-animation:ani-rotateHook 5s ease-in 2.5s;
387 }
388 @keyframes ani-rotateHook{
389     0%{
390         opacity:0;
391         transform:scale(0) rotate(0);
392     }
393     15%{
394         opacity:1;
395         transform:scale(1) rotate(-360deg);
396     }
397     90%{
398         opacity:1;
399         transform:scale(1) rotate(-360deg);
400     }
401     100%{
402         opacity:0;
403         transform:scale(1.8) rotate(-540deg);
404     }
405 }
406 @-webkit-keyframes ani-rotateHook{
407     0%{
408         opacity:0;
409         -webkit-transform:scale(0) rotate(0);
410     }
411     15%{
412         opacity:1;
413         -webkit-transform:scale(1) rotate(-360deg);
414     }
415     90%{
416         opacity:1;
417         -webkit-transform:scale(1) rotate(-360deg);
418     }
419     100%{
420         opacity:0;
421         -webkit-transform:scale(1.8) rotate(-540deg);
422     }
423 }
424 @-o-keyframes ani-rotateHook{
425     0%{
426         opacity:0;
427         -o-transform:scale(0) rotate(0);
428     }
429     15%{
430         opacity:1;
431         -o-transform:scale(1) rotate(-360deg);
432     }
433     90%{
434         opacity:1;
435         -o-transform:scale(1) rotate(-360deg);
436     }
437     100%{
438         opacity:0;
439         -o-transform:scale(1.8) rotate(-540deg);
440     }
441 }
442 .ani-rotateTube{
443     animation:ani-rotateTube 5s ease-in-out 6.5s;
444     -webkit-animation:ani-rotateTube 5s ease-in-out 6.5s;
445     -o-animation:ani-rotateTube 5s ease-in-out 6.5s;
446 }
447 @keyframes ani-rotateTube{
448     0%{
449         opacity:0;
450         transform:scale(0) rotate(0);
451     }
452     30%{
453         opacity:1;
454         transform:scale(1) rotate(-360deg);
455     }
456     100%{
457         opacity:1;
458         transform:scale(1) rotate(-360deg);
459     }
460 }
461 @-webkit-keyframes ani-rotateTube{
462     0%{
463         opacity:0;
464         -webkit-transform:scale(0) rotate(0);
465     }
466     30%{
467         opacity:1;
468         -webkit-transform:scale(1) rotate(-360deg);
469     }
470     100%{
471         opacity:1;
472         -webkit-transform:scale(1) rotate(-360deg);
473     }
474 }
475 @-o-keyframes ani-rotateTube{
476     0%{
477         opacity:0;
478         -o-transform:scale(0) rotate(0);
479     }
480     30%{
481         opacity:1;
482         -o-transform:scale(1) rotate(-360deg);
483     }
484     100%{
485         opacity:1;
486         -o-transform:scale(1) rotate(-360deg);
487     }
488 }
489 .ani-shadow{
490     animation:ani-shadow 1s linear 11s;
491     -webkit-animation:ani-shadow 1s linear 11s;
492     -o-animation:ani-shadow 1s linear 11s;
493 }
494 @keyframes ani-shadow{
495     0%{
496         opacity:0;
497         box-shadow:none;
498     }
499     100%{
500         opacity:1;
501         box-shadow:0 0 0 14px #464646,0 0 0 16px #000,0 0 0 30px #6c6c6c,0 0 0 32px #000,0 0 0 44px #a6a6a6,0 0 0 46px #000;
502     }
503 }
504 @-webkit-keyframes ani-shadow{
505     0%{
506         opacity:0;
507         box-shadow:none;
508     }
509     100%{
510         opacity:1;
511         box-shadow:0 0 0 14px #464646,0 0 0 16px #000,0 0 0 30px #6c6c6c,0 0 0 32px #000,0 0 0 44px #a6a6a6,0 0 0 46px #000;
512     }
513 }
514 @-o-keyframes ani-shadow{
515     0%{
516         opacity:0;
517         box-shadow:none;
518     }
519     100%{
520         opacity:1;
521         box-shadow:0 0 0 14px #464646,0 0 0 16px #000,0 0 0 30px #6c6c6c,0 0 0 32px #000,0 0 0 44px #a6a6a6,0 0 0 46px #000;
522     }
523 }
524 .ani-narrow,
525 .ani-zoom,
526 .ani-rotateHook,
527 .ani-rotateTube,
528 .ani-shadow,
529 .eyes .line:after{
530     animation-fill-mode:both;
531     -webkit-animation-fill-mode:both;
532     -o-animation-fill-mode:both;
533 }
View Code
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值