如何使用 CSS 和 JavaScript 建立幕簾導航選單?


在本文中,我們將學習如何使用 HTML、CSS 和 JavaScript 建立幕簾導航選單。

幕簾導航選單將覆蓋整個螢幕,並將當前頁面推回。這些選單顯示連結的子連結,使導航更加具體。

要建立幕簾導航,我們必須像之前所做的那樣。在幕簾導航中,我們有兩個按鈕,一個是開啟按鈕(選單),另一個是關閉按鈕(叉號)。

當您單擊開啟按鈕時,導航將顯示在螢幕上,或者如果您單擊關閉按鈕,則導航將從螢幕上隱藏。

在本例中,我們正在建立一個顯示“幕簾導航選單”的網頁。單擊後將出現一個包含 4 個連結的選單。

Example.html

建立一個HTML檔案,我們將在其中定義頁面的結構(檢視)。在本例中,使用 HTML 程式碼,我們正在建立當前頁面,其中包含所需的文字、幕簾導航和選單的空導航連結。

<body>
   <!-- HTML -->
   <nav class="side-nav">
      <a href="#" class="cls_btn">×</a>
      <a href="#">Home</a>
      <a href="#">Tutorials</a>
      <a href="#">AboutUs</a>
      <a href="#">ContactUs</a>
   </nav>
<button class="opn_btn">☰</button>

Example.css

新增CSS 樣式以在幕簾導航選單上提供背景和懸停效果,以獲得更好的外觀。在本例中,我們正在設定幕簾導航選單的樣式,如果懸停在連結上,背景顏色將更改。

<style>
   /*CSS*/
   
   .side-nav {
      height: 100vh;
      width: 0;
      position: fixed;
      z-index: 1;
      top: 0;
      left: 0;
      background-color: rgba(46, 218, 100, 0.629);
      overflow-x: hidden;
      padding-top: 60px;
      transition: 0.5s;
   }
   
   .side-nav a {
      padding: 8px 8px 8px 32px;
      text-decoration: none;
      font-size: 25px;
      color: #000000;
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
      display: block;
      transition: 0.3s;
      text-align: center;
   }
   
   .side-nav a:hover {
      color: #f1f1f1;
   }
   
   .side-nav .cls_btn {
      position: absolute;
      top: 0;
      right: 25px;
      font-size: 36px;
      margin-left: 50px;
   }
   
   button {
      padding: 5px 10px;
      background-color: rgb(0, 0, 0);
      color: rgb(255, 255, 255);
      border: none;
      border-radius: 2px;
   }
</style>

Example.js

使用Javascript,我們可以執行驗證並在頁面上處理事件。在本例中,建立開啟和關閉按鈕。導航將透過單擊選單欄按鈕開啟,並透過單擊叉號按鈕關閉。

<!--JavaScript -->
<script>
   let opn_Btn = document.querySelector(".opn_btn");
   let cls_Btn = document.querySelector(".cls_btn");
   opn_Btn.addEventListener("click", () => {
      document.querySelector(".side-nav").style.width = "100%";
   });
   cls_Btn.addEventListener("click", () => {
      document.querySelector(".side-nav").style.width = "0";
   });
</script>

從上面的 javascript 程式碼中,您可以瞭解我們如何顯示和隱藏導航選單。

完整示例

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8" />
   <meta http-equiv="X-UA-Compatible" content="IE=edge" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <title>Curtain Navigation</title>
   <style>
   /*CSS*/

   .side-nav {
      height: 100vh;
      width: 0;
      position: fixed;
      z-index: 1;
      top: 0;
      left: 0;
      background-color: rgba(46, 218, 100, 0.629);
      overflow-x: hidden;
      padding-top: 60px;
      transition: 0.5s;
   }

   .side-nav a {
      padding: 8px 8px 8px 32px;
      text-decoration: none;
      font-size: 25px;
      color: #000000;
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
      display: block;
      transition: 0.3s;
      text-align: center;
   }

   .side-nav a:hover {
      color: #f1f1f1;
   }

   .side-nav .cls_btn {
      position: absolute;
      top: 0;
      right: 25px;
      font-size: 36px;
      margin-left: 50px;
   }

   button {
      padding: 5px 10px;
      background-color: rgb(0, 0, 0);
      color: rgb(255, 255, 255);
      border: none;
      border-radius: 2px;
   }
   </style>
</head>
<body>
   <!-- HTML -->
   <nav class="side-nav">
      <a href="#" class="cls_btn">×</a>
      <a href="#">Home</a>
      <a href="#">Tutorials</a>
      <a href="#">AboutUs</a>
      <a href="#">ContactUs</a>
   </nav>
   <button class="opn_btn">☰</button>
   <!--JavaScript -->
   <script>
   let opn_Btn = document.querySelector(".opn_btn");
   let cls_Btn = document.querySelector(".cls_btn");
   opn_Btn.addEventListener("click", () => {
      document.querySelector(".side-nav").style.width = "100%";
   });
   cls_Btn.addEventListener("click", () => {
      document.querySelector(".side-nav").style.width = "0";
   });
   </script>
</body>
</html>

更新於: 2022年12月19日

921 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告