zoukankan      html  css  js  c++  java
  • CSS3特效----制作3D旋转导航

    大致思路:首先给 three-d-box 设置一个 transition是不可少的
    然后每个 a 标签里面有两个 span 一个叫 font 一个叫 back,默认状态下 font 旋转0度,也就是没旋转,back 旋转-90度,现在只能看得到 font 看不到 back 当鼠标移动到上面去的时候(任务5这两个样式控制,移动到上面来的时候旋转90度),控制 three-d-box旋转90度,这样,原来的 font 就旋转到后面去了,back 就变成正面朝前了 就可以看到了。

    效果如图:

      1 <!doctype html>
      2 <html lang="en">
      3     <head>
      4         <meta charset="UTF-8">
      5         <title>制作3D旋转导航</title>
      6         <style>
      7             @import url("http://www.w3cplus.com/demo/css3/base.css");
      8             /*任务一:引入本地字体文件*/
      9             @font-face {
     10                 font-family: 'sansationregular';
     11                 src: url('http://www.w3cplus.com/demo/css3/3DAnimationDropdownMenu/sansation_regular-webfont.eot');
     12                 src: url('http://www.w3cplus.com/demo/css3/3DAnimationDropdownMenu/sansation_regular-webfont.eot?#iefix') format('http://www.w3cplus.com/demo/css3/3DAnimationDropdownMenu/embedded-opentype'),
     13                      url('http://www.w3cplus.com/demo/css3/3DAnimationDropdownMenu/sansation_regular-webfont.woff') format('woff'),
     14                      url('http://www.w3cplus.com/demo/css3/3DAnimationDropdownMenu/sansation_regular-webfont.ttf') format('truetype'),
     15                      url('http://www.w3cplus.com/demo/css3/3DAnimationDropdownMenu/sansation_regular-webfont.svg#sansationregular') format('svg');
     16                 font-weight: normal;
     17                 font-style: normal;
     18             }
     19             body {
     20                 background-color:#edecec;
     21             }
     22 
     23             /* basic menu styles */
     24             .nav-menu {
     25               display: block;
     26                 background: #74adaa;
     27                 width:950px;
     28                 margin: 50px auto 150px;
     29             }
     30             .nav-menu > li {
     31               display: inline;
     32               float:left;            
     33                 border-right:1px solid #94c0be;
     34             }
     35             .nav-menu > li:last-child {
     36               border-right: none;
     37             }
     38             .nav-menu li a {
     39               color: #fff;
     40                 display: block;
     41                 text-decoration: none;
     42               /*调用本地字体*/
     43                 font-family: 'sansationregular';
     44                 -webkit-font-smoothing: antialiased;
     45                 -moz-font-smoothing: antialiased;
     46                 font-smoothing: antialiased;
     47                 text-transform: capitalize;
     48                 overflow: visible;
     49                 line-height: 20px;
     50                 font-size: 20px;
     51                 padding: 15px 30px 15px 31px;            
     52             }
     53 
     54             /* animation domination */
     55             .three-d {
     56               /* 任务三、设置3D舞台布景 */
     57               -webkit-perspective: 200px;
     58               -moz-perspective: 200px;
     59               -ms-perspective: 200px;
     60               -o-perspective: 200px;
     61               perspective: 200px;
     62 
     63               /*任务四、设置3D舞台布景过渡效果*/
     64               -webkit-transition: all .07s linear;
     65               -moz-transition: all .07s linear;
     66               -ms-transition: all .07s linear;
     67               -o-transition: all .07s linear;
     68               transition: all .07s linear;
     69               position: relative;
     70             }
     71 
     72             .three-d:not(.active):hover {
     73               cursor: pointer;
     74             }
     75             /*任务五、给不是当前状态的3D舞台的悬浮与聚焦状态设置变形效果*/
     76             .three-d:not(.active):hover .three-d-box, 
     77             .three-d:not(.active):focus .three-d-box {
     78               -wekbit-transform: translateZ(-25px) rotateX(90deg);
     79               -moz-transform: translateZ(-25px) rotateX(90deg);
     80               -o-transform: translateZ(-25px) rotateX(90deg);
     81               -ms-transform: translateZ(-25px) rotateX(90deg);
     82               transform: translateZ(-25px) rotateX(90deg);
     83             }
     84 
     85             .three-d-box {
     86               /*任务六、给3D舞台中“.three-d-box”设置过渡与变形效果*/
     87               -webkit-transition: all .3s ease-out;
     88               -moz-transition: all .3s ease-out;
     89               -ms-transition: all .3s ease-out;
     90               -o-transition: all .3s ease-out;
     91               transition: all .3s ease-out;
     92               -webkit-transform: translatez(-25px);
     93               -moz-transform: translatez(-25px);
     94               -ms-transform: translatez(-25px);
     95               -o-transform: translatez(-25px);
     96               transform: translatez(-25px);
     97               -webkit-transform-style: preserve-3d;
     98               -moz-transform-style: preserve-3d;
     99               -ms-transform-style: preserve-3d;
    100               -o-transform-style: preserve-3d;
    101               transform-style: preserve-3d;
    102               -webkit-pointer-events: none;
    103               -moz-pointer-events: none;
    104               -ms-pointer-events: none;
    105               -o-pointer-events: none;
    106               pointer-events: none;
    107               position: absolute;
    108               top: 0;
    109                 left: 0;
    110                 display: block;
    111                 width: 100%;
    112                 height: 100%;
    113             }
    114             /*任务七、给导航设置3D前,与3D后变形效果*/
    115             .front {
    116               -webkit-transform: rotatex(0deg) translatez(25px);
    117               -moz-transform: rotatex(0deg) translatez(25px);
    118               -ms-transform: rotatex(0deg) translatez(25px);
    119               -o-transform: rotatex(0deg) translatez(25px);
    120               transform: rotatex(0deg) translatez(25px);
    121             }
    122 
    123             .back {
    124               -webkit-transform: rotatex(-90deg) translatez(25px);
    125               -moz-transform: rotatex(-90deg) translatez(25px);
    126               -ms-transform: rotatex(-90deg) translatez(25px);
    127               -o-transform: rotatex(-90deg) translatez(25px);
    128               transform: rotatex(-90deg) translatez(25px);
    129               color: #FFE7C4;
    130             }
    131 
    132             .front, .back {
    133               display: block;
    134                 width: 100%;
    135                 height: 100%;
    136                 position: absolute;
    137                 top: 0;
    138                 left: 0;
    139                 background: #74adaa;
    140                 padding: 15px 30px 15px 31px;    
    141                 color: white;
    142                 -webkit-pointer-events: none;
    143               -moz-pointer-events: none;
    144               -ms-pointer-events: none;
    145               -o-pointer-events: none;
    146               pointer-events: none;
    147               -webkit-box-sizing: border-box;
    148               box-sizing: border-box;
    149             }
    150             /*任务八、设置导航当前状态与悬浮状态下的背景效果*/
    151             .nav-menu li .active .front,
    152             .nav-menu li .active .back,
    153             .nav-menu li a:hover .front,
    154             .nav-menu li a:hover .back {
    155               background-color: #51938f;
    156               -webkit-background-size: 5px 5px;
    157               background-size: 5px 5px;
    158               background-position: 0 0, 30px 30px;
    159               background-image: -webit-linear-gradient(45deg, #478480 25%, transparent 25%, transparent 75%, #478480 75%, #478480), linear-gradient(45deg, #478480 25%, transparent 25%, transparent 75%, #478480 75%, #478480);
    160               background-image: -moz-linear-gradient(45deg, #478480 25%, transparent 25%, transparent 75%, #478480 75%, #478480), linear-gradient(45deg, #478480 25%, transparent 25%, transparent 75%, #478480 75%, #478480);
    161                 background-image: -ms-linear-gradient(45deg, #478480 25%, transparent 25%, transparent 75%, #478480 75%, #478480), linear-gradient(45deg, #478480 25%, transparent 25%, transparent 75%, #478480 75%, #478480);
    162               background-image: -o-linear-gradient(45deg, #478480 25%, transparent 25%, transparent 75%, #478480 75%, #478480), linear-gradient(45deg, #478480 25%, transparent 25%, transparent 75%, #478480 75%, #478480);
    163               background-image: linear-gradient(45deg, #478480 25%, transparent 25%, transparent 75%, #478480 75%, #478480), linear-gradient(45deg, #478480 25%, transparent 25%, transparent 75%, #478480 75%, #478480);
    164             }
    165             .nav-menu ul {
    166               position: absolute;
    167                 text-align: left;
    168                 line-height: 40px;
    169                 font-size: 14px;
    170                 width: 200px;
    171                 -webkit-transition: all 0.3s ease-in;
    172               -moz-transition: all 0.3s ease-in;
    173               -ms-transition: all 0.3s ease-in;
    174               -o-transition: all 0.3s ease-in;
    175               transition: all 0.3s ease-in;
    176               -webkit-transform-origin: 0px 0px;
    177               -moz-transform-origin: 0px 0px;
    178               -ms-transform-origin: 0px 0px;
    179               -o-transform-origin: 0px 0px;
    180               transform-origin: 0px 0px;
    181               -webkit-transform: rotateX(-90deg);
    182               -moz-transform: rotateX(-90deg);
    183               -ms-transform: rotateX(-90deg);
    184               -o-transform: rotateX(-90deg);
    185               transform: rotateX(-90deg);
    186               -webkit-backface-visibility: hidden;
    187               -moz-backface-visibility: hidden;
    188               -ms-backface-visibility: hidden;
    189               -o-backface-visibility: hidden;
    190                 backface-visibility: hidden;
    191             }
    192             /*任务九、显示下拉导航菜单,并其设置一个变形效果*/
    193             .nav-menu > li:hover ul {
    194               display: block;
    195               -webkit-transform: rotateX(0deg);
    196               -moz-transform: rotateX(0deg);
    197               -ms-transform: rotateX(0deg);
    198               -o-transform: rotateX(0deg);
    199                 transform: rotateX(0deg);
    200             }
    201         </style>
    202     </head>
    203     <body>
    204         <div id="nav">
    205             <ul class="nav-menu clearfix unstyled">
    206                 <li><a href="#" class="three-d active">
    207                     Home
    208                     <span class="three-d-box"><span class="front">Home</span><span class="back">Home</span></span>
    209                 </a></li>
    210                 <li><a href="#" class="three-d">
    211                     Services
    212                     <span class="three-d-box"><span class="front">Services</span><span class="back">Services</span></span>
    213                 </a></li>
    214                 <li><a href="#" class="three-d">
    215                     Products
    216                     <span class="three-d-box"><span class="front">Products</span><span class="back">Products</span></span>
    217                 </a></li>
    218                 <li><a href="#" class="three-d">
    219                     About
    220                     <span class="three-d-box"><span class="front">About</span><span class="back">About</span></span>
    221                 </a></li>
    222                 <li><a href="#" class="three-d">
    223                     Contact
    224                     <span class="three-d-box"><span class="front">Contact</span><span class="back">Contact</span></span>
    225                 </a></li>
    226                 <li><a href="#" class="three-d">
    227                     Blog
    228                     <span class="three-d-box"><span class="front">Blog</span><span class="back">Blog</span></span>
    229                 </a>
    230                     <ul class="clearfix unstyled drop-menu">
    231                         <li><a href="#" class="three-d">
    232                                 Html5
    233                                 <span class="three-d-box"><span class="front">Html5</span><span class="back">Html5</span></span>
    234                             </a></li>
    235                             <li><a href="#" class="three-d">
    236                                 Css3
    237                                 <span class="three-d-box"><span class="front">Css3</span><span class="back">Css3</span></span>
    238                             </a></li>
    239                             <li><a href="#" class="three-d">
    240                                 JavaScript
    241                                 <span class="three-d-box"><span class="front">JavaScript</span><span class="back">JavaScript</span></span>
    242                             </a></li>
    243                             <li><a href="#" class="three-d">
    244                                 Videogames
    245                                 <span class="three-d-box"><span class="front">Videogames</span><span class="back">Videogames</span></span>
    246                             </a></li>
    247                     </ul>
    248                 </li>
    249                 <li><a href="#" class="three-d">
    250                     Shop On-line
    251                     <span class="three-d-box"><span class="front">Shop On-line</span><span class="back">Shop On-line</span></span>
    252                 </a></li>
    253             </ul>
    254         </div>
    255     </body>
    256 </html>
  • 相关阅读:
    LeetCode "Group Shifted Strings"
    LeetCode "Read N Characters Given Read4 II
    LeetCode "Factor Combinations"
    LeetCode "Paint House II"
    LeetCode "Shortest Word Distance II"
    LeetCode "Flatten 2D Vector"
    LeetCode "Meeting Rooms II"
    iOS开发UI篇—UITableview控件使用小结
    ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局
    iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
  • 原文地址:https://www.cnblogs.com/Lovebugs/p/6394146.html
Copyright © 2011-2022 走看看