今天我們來看一個非常有創意的CSS3 3D菜單,這個菜單的菜單項是可以旋轉的長方體,鼠標滑過是長方體即可旋轉,看看下面的效果圖,是不是感覺非常酷,我覺得這個菜單很適合用在咱們開發人員的個人網站上。
當然你也可以直接到這里去查看這款菜單的DEMO演示。
接下來還是分析一下這款CSS3菜單的源代碼吧,很簡單的HTML+CSS即可實現。
先來看看HTML代碼:
<nav> <ul> <li><a class="current" href="#" data-hover="Home">Home</a></li> <li><a href="#" data-hover="Blog">Blog</a></li> <li><a href="#" data-hover="About">About</a></li> <li><a href="#" data-hover="Contact">Contact</a></li> </ul> </nav>
這個HTML布局可謂是干凈利落,很難看出來這會是一款超酷的3D菜單。
當然最重要的是CSS代碼,一起來看看:
先是定義了一下菜單的整體外觀,包括文字的顏色和菜單的背景等等:
nav { background: #fff; margin: 15vh 2rem; } nav ul { list-style: none; } nav ul li { display: inline-block; text-transform: uppercase; font-size: 1.5rem; letter-spacing: 0.05rem; } nav ul li a { display: inline-block; padding: 1rem; color: #000; text-decoration: none; -webkit-transition: -webkit-transform 0.3s ease 0s; transition: transform 0.3s ease 0s; -webkit-transform-origin: 50% 0px 0px; -ms-transform-origin: 50% 0px 0px; transform-origin: 50% 0px 0px; -webkit-transform-style: preserve-3d; -ms-transform-style: preserve-3d; transform-style: preserve-3d; } nav ul li a.current { color: #FF005B; }
然后就是鼠標滑過菜單項實現的立方體翻轉效果了:
nav ul li a:hover { background: #fff; color: #000; -webkit-transform: rotateX(90deg) translateY(-22px); -ms-transform: rotateX(90deg) translateY(-22px); transform: rotateX(90deg) translateY(-22px); } nav ul li a::before { position: absolute; top: 100%; left: 0px; width: 100%; padding: 4px 0px; text-align: center; line-height: 50px; background: none repeat scroll 0% 0% #FF005B; color: #FFF; content: attr(data-hover); -webkit-transition: #6363CE 0.3s ease 0s; transition: #6363CE 0.3s ease 0s; -webkit-transform: rotateX(-90deg); -ms-transform: rotateX(-90deg); transform: rotateX(-90deg); -webkit-transform-origin: 50% 0px 0px; -ms-transform-origin: 50% 0px 0px; transform-origin: 50% 0px 0px; }
不難看出,我們通過CSS3的transform的rotate屬性就能完成翻轉的動作,同時結合transition屬性來實現翻轉過程中顏色的漸變動畫。
最后我們把源代碼分享上來,下載地址>>