HTML+CSS實現選單的3D翻轉特效
HTML+CSS實現選單的3D翻轉特效
效果圖如下:
HTML部分原始碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>翻轉特效</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<nav>
<div class="item">
<a href="#">
<p class="cn">首頁</p>
<p class="en">INDEX</p>
</a>
</div>
<div class="item">
<a href="#">
<p class="cn">部落格</p>
<p class="en">BLOG</p>
</a>
</div>
<div class="item">
<a href="#">
<p class="cn">關於</p>
<p class="en">ABOUT</p>
</a>
</div>
</nav>
</body>
</html>
CSS部分原始碼如下:
:root {
--background-color: #2c3e50;
--color1: #7591AD;
--color2: #9729ad;
--color3: #db2159;
}
* {
margin: 0;
padding: 0;
}
html {
font-size: 14px;
}
body {
width: 100vw;
height: 100vh;
background-color: var(--background-color);
display: flex;
justify-content: center;
align-items: center;
}
nav {
width: 680px;
background-color: var(--color1);
}
.item {
width: 200px;
height: 100px;
margin: 10px;
float: left;
perspective: 4000px;
}
.item a {
display: block;
height: 100px;
text-decoration: none;
color: #fff;
font-size: 1.5em;
/* 開啟3d */
transform-style: preserve-3d;
/* 通過變換角度可以發現剛才的夾角好像一個開啟的膝上型電腦 */
/* transform: rotateX(10deg) rotateY(10deg) translateZ(50px); */
/* 增加z軸上的位移主要是為了讓hover旋轉式沿著夾角形成的 */
/* 虛擬立方體中心軸旋轉而不是當前cn元素的這一面的中心 */
transform: translateZ(50px);
transition: 0.5s;
}
.item a p {
height: 100px;
line-height: 100px;
text-align: center;
}
.item a p.cn {
background-color: var(--color2);
}
.item a p.en {
background-color: var(--color3);
/* en元素沿頂端x軸逆向旋轉90度
形成於cn元素垂直的夾角,類似於形成一個缺兩面的正方體
*/
transform: rotateX(-90deg);
transform-origin: top;
}
.item a:hover{
/* 當滑鼠移動到a元素時旋轉,沿X軸旋轉順時針90度 */
/* 因為當前旋轉基點在夾角形成的虛擬正方體的中心,所有看起來就像旋轉
立方體的兩個面一樣 */
/* 出現偏移問題是因為順序原因,具體的後續查了下文件發現,變換動作的
順序會影響最終呈現的效果 */
transform: rotateX(90deg) translateZ(50px) ;
}
相關文章
- HTML+CSS實現下拉選單HTMLCSS
- 高階UI特效之仿3D翻轉切換效果UI特效3D
- Vue.js 實現的 3D Tab選單Vue.js3D
- .滑鼠點選愛心特效的實現特效
- HTML+CSS實現太極旋轉效果HTMLCSS
- PHP 實現字串翻轉(包含中文漢字)的實現PHP字串
- 如何實現一個 滑鼠點選特效的 chrome外掛特效Chrome
- 怎麼實現一個3d翻書效果3D
- 用最簡單的方法實現原生 JS 放大鏡特效JS特效
- 滑鼠懸浮圖片3D翻轉出現文字說明3D
- Flutter:手把手教你實現一個仿 Flipboard 圖片3D翻轉動畫Flutter3D動畫
- 如何實現公眾號選單欄跳轉小程式
- 滑鼠懸浮圖片實現翻轉效果
- 用python實現簡單的線上翻譯程式Python
- css3 3D 深度翻轉效果案例CSSS33D
- HTML+CSS實現動態相簿HTMLCSS
- vxe-table 單選、實現表格單選資料
- 用canvas實現流星特效Canvas特效
- CSS實現開關特效CSS特效
- [譯] 使用 Flutter 製作 3D 翻轉動畫Flutter3D動畫
- Qt右鍵選單實現QT
- Vue實現左右選單聯動實現(更新)Vue
- LeetCode-151-翻轉字串裡的單詞LeetCode字串
- checkbox及css實現點選下拉選單CSS
- 直播特效的實現原理與難點特效
- 選單的無限極分類實現
- jquery 實現的摺疊展開的選單jQuery
- 快速實現語音轉文字,還自帶翻譯
- web前端入門到實戰:css滑鼠經過彈出子選單特效Web前端CSS特效
- vue使用iview實現單選,禁選,下拉框的效果VueView
- css3帶你實現3D轉換效果CSSS33D
- python 爬蟲 簡單實現百度翻譯Python爬蟲
- JQuery實現絢麗的橫向下拉選單jQuery
- 實現單擊一級選單顯示或隱藏二級選單
- 【轉載】RenderTransform特效ORM特效
- 直播原始碼網站,實現文字自動翻轉效果原始碼網站
- Python實現簡單驗證碼的轉文字Python
- JZ-044-翻轉單詞順序列