网页特效:3D翻转效果

  前段时间在极客学院的网站上看到了一个网页效果,就是鼠标移到某个块上,出现3D翻转的效果显示背面的内容(http://www.jikexueyuan.com/,在页面的最后面)。对于前端也只是了解一些,当时还不知道这个效果怎么做的,于是查看了它的源码,发现用到了css3的一个属性backface-visibility,这个属性也要配合transform:rotateY来使用,如果将某个div或dom元素的backface-visibility设置为hidden时,表示的是当该div处于背面的时候是隐藏的,也就是需要配合transform:rotateY来使用,将transform:rotateY设置为transform:rotateY(180deg)或者transform:rotateY(-180deg),这样这个div就是处于背面,这个时候这个div就会隐藏了。

  做到像极客学院这样的翻转效果,其实还是很容易的,大概的思路就是同时定义两个div,采用绝对定位,position:absolute;设置相同的位置参数,总之就是两个div要处于同一位置,然后都将属性backface-visibility设置为hidden,要一开始就隐藏的那个div需要将transform属性设置为transform:rotateY(-180deg),当然设置成180deg也是可以的。这样之后处于背面的div就会被隐藏。然后通过js添加鼠标mouseover的事件,将处于前面的div的transform属性改为transform:rotateY(-180deg),处于背面的divtransform属性改为transform:rotateY(0deg),这样处于前面的div变成了背面,处于背面的div又变成了前面,背面的div会隐藏,这样就做到了前面和背面div的切换。但是仅仅这样,效果看起来和生硬,没有过渡的效果。因此每个div需要加上transition属性,将transform设置为0.6s的过渡时间,当然你设置成其他时间也可以。这样翻转的效果就做好了。我上传至了新浪的SAE,可点击链接查看效果http://3doverturn.sinaapp.com/3Doverturn/

  源代码如下:

1.html代码


 

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 <html xmlns="http://www.w3.org/1999/xhtml">
  3 <head>
  4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5 <title>3D翻转效果</title>
  6 <script type="text/javascript" src="js/jquery-2.1.1.min.js"></script>
  7 <link rel="stylesheet" type="text/css" href="css/index.css"/>
  8 </head>
  9 <script type="text/javascript">
 10     $(document).ready(function(){
 11 
 12         for(var i=0;i<10;i++){
 13             $("#overturn_td"+i).mouseover(function(){
 14 
 15                 var getid=this.id.substr(11);
 16                 //alert(getid);
 17                 $("#overturn_front"+getid).css({"-webkit-transform":"rotateY(-180deg)"});
 18                 $("#overturn_back"+getid).css({"-webkit-transform":"rotateY(0deg)"});
 19             });
 20             $("#overturn_td"+i).mouseleave(function(){
 21                 var getid=this.id.substr(11);
 22                 $("#overturn_front"+getid).css({"-webkit-transform":"rotateY(0deg)"});
 23                 $("#overturn_back"+getid).css({"-webkit-transform":"rotateY(-180deg)"});
 24             });
 25         }
 26         
 27 
 28     });
 29 </script>
 30 
 31 <body>
 32 
 33     <h2>3D翻转效果</h2>
 34     <h3>by Redstone</h3>
 35     <table>
 36         <tr>
 37             <td id="overturn_td0">
 38                 <div id="overturn_front0">
 39                     <img src="image/android.png" alt="Android开发">
 40                 </div>
 41                 <div id="overturn_back0">
 42                     <button>开始学习</button>
 43                 </div>
 44             </td>
 45             <td id="overturn_td1">
 46                 <div id="overturn_front1">
 47                     <img src="image/ios.png" alt="iOS开发">
 48                 </div>
 49                 <div id="overturn_back1">
 50                     <button>开始学习</button>
 51                 </div>
 52             </td>
 53             <td id="overturn_td2">
 54                 <div id="overturn_front2">
 55                     <img src="image/html.png" alt="html5开发">
 56                 </div>
 57                 <div id="overturn_back2">
 58                     <button>开始学习</button>
 59                 </div>
 60             </td>
 61             <td id="overturn_td3">
 62                 <div id="overturn_front3">
 63                     <img src="image/Cocos2d-x.png" alt="Cocos2d-x游戏开发">
 64                 </div>
 65                 <div id="overturn_back3">
 66                     <button>开始学习</button>
 67                 </div>
 68             </td>
 69             <td id="overturn_td4">
 70                 <div id="overturn_front4">
 71                     <img src="image/c.png" alt="C语言">
 72                 </div>
 73                 <div id="overturn_back4">
 74                     <button>开始学习</button>
 75                 </div>
 76             </td>
 77         </tr>
 78         <tr>
 79             <td id="overturn_td5">
 80                 <div id="overturn_front5">
 81                     <img src="image/Java.png" alt="Java语言">
 82                 </div>
 83                 <div id="overturn_back5">
 84                     <button>开始学习</button>
 85                 </div>
 86             </td>
 87             <td id="overturn_td6">
 88                 <div id="overturn_front6">
 89                     <img src="image/php.png" alt="php语言">
 90                 </div>
 91                 <div id="overturn_back6">
 92                     <button>开始学习</button>
 93                 </div>
 94             </td>
 95             <td id="overturn_td7">
 96                 <div id="overturn_front7">
 97                     <img src="image/swift.png" alt="Swift">
 98                 </div>
 99                 <div id="overturn_back7">
100                     <button>开始学习</button>
101                 </div>
102             </td>
103             <td id="overturn_td8">
104                 <div id="overturn_front8">
105                     <img src="image/bootstrap.png" alt="Bootstrap">
106                 </div>
107                 <div id="overturn_back8">
108                     <button>开始学习</button>
109                 </div>
110             </td>
111             <td id="overturn_td9">
112                 <div id="overturn_front9">
113                     <img src="image/unity3D.png" alt="Unity3D">
114                 </div>
115                 <div id="overturn_back9">
116                     <button>开始学习</button>
117                 </div>
118             </td>
119         </tr>
120     </table>
121 </body>
122 </html>

2.css代码


 

 1 body h2,h3{
 2     text-align: center;
 3     font-family: 微软雅黑;
 4 }
 5 #overturn_front0,#overturn_front1,#overturn_front2,#overturn_front3,#overturn_front4,
 6 #overturn_front5,#overturn_front6,#overturn_front7,#overturn_front8,#overturn_front9{
 7     height:200px;
 8     width:200px;
 9     /*-webkit-box-shadow:1px 1px 1px 1px rgba(20%,20%,40%,0.5);*/
10     -webkit-transition:-webkit-transform 0.6s;
11     position:absolute;
12     -webkit-backface-visibility:hidden;
13     z-index: 2;
14     -webkit-transform: rotateY(0deg);
15     top:0;
16 }
17 #overturn_back0,#overturn_back1,#overturn_back2,#overturn_back3,#overturn_back4,
18 #overturn_back5,#overturn_back6,#overturn_back7,#overturn_back8,#overturn_back9{
19     height:200px;
20     width:200px;
21     /*-webkit-box-shadow:1px 1px 1px 1px rgba(20%,20%,40%,0.5);*/
22     -webkit-transition:-webkit-transform 0.6s;
23     cursor: pointer;
24     background:#f5f5f5;
25     -webkit-backface-visibility:hidden;
26     position: absolute;
27     -webkit-transform: rotateY(-180deg);
28     top:0;
29 }
30 
31 table{
32     border-collapse:collapse;
33     border-spacing:0;
34     margin: auto;
35 }
36 table td{
37     height: 200px;
38     width: 200px;
39     border: 1px solid #E4E4E4;
40     position: relative;
41     padding: 0;
42     text-align: center;
43     line-height: 200px;
44 }
45 table td img{
46     width: 140px;
47     height: 140px;
48     margin-top: 30px;
49 }
50 
51 table td button{
52     border:none;
53     background: #35b558;
54     width: 140px;
55     height:36px;
56     cursor: pointer;
57     color: #FFFFFF;
58     font-family: 微软雅黑;
59     font-size: 16px;
60     -webkit-transition:background 0.8s;
61     margin-top: 82px;
62 }
63 
64 table td button:hover{
65     background: #35b57b;
66 }
67 #overturn_front{
68     height:200px;
69     width:200px;
70     -webkit-box-shadow:1px 1px 1px 1px rgba(20%,20%,40%,0.5);
71     -webkit-transition:-webkit-transform 0.6s;
72     cursor: pointer;
73     position:absolute;
74     -webkit-backface-visibility:hidden;
75     z-index: 2;
76     -webkit-transform: rotateY(0deg);
77 }
78 
79 #overturn_back{
80     height:200px;
81     width:200px;
82     -webkit-box-shadow:1px 1px 1px 1px rgba(20%,20%,40%,0.5);
83     -webkit-transition:-webkit-transform 0.6s;
84     cursor: pointer;
85     background:#f5f5f5;
86     -webkit-backface-visibility:hidden;
87     position: absolute;
88     -webkit-transform: rotateY(-180deg);
89 }

  其中的图片使用的就是极客学院上的图片,在此说明一下。当然还引入了jquery。需要的朋友,可以将代码拷贝,同时一些js,css和图片文件的路径需要修改为自己对应的路径。

  本人前端水平很一般,在此分享一些自己写过的小demo。望各路大神观光指导。谢谢~

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。