使用HTML和CSS创建动画侧边栏

使用HTML和CSS创建动画侧边栏

导航栏是一种GUI元素,允许用户浏览网站或应用程序。它通常是屏幕顶部或侧面的链接列表,并帮助用户导航到网站内的各个区域或页面。

导航栏在操作系统、文件浏览器、Web浏览器、应用程序、网站和其他类似的用户界面中实施。

在本文中,我们将使用HTML、CSS和JavaScript设计一个动画侧边导航栏。

如何创建动画侧边导航栏

以下是使用HTML、CSS和JavaScript设计动画侧边导航栏的步骤 –

  • 第1步 - 添加下面的 HTML 代码。
<body>
   <div id="sidemenu">
      <a href="javscript:void(0)" class="btn-area" onclick="closeBtn()">Close</a>
      <!—Side navigation bar content-->
      <div class="mainNav">
         <a href="#">Home</a>
         <a href="#">Coding Ground</a>
         <a href="#">Jobs</a>
         <a href="#">Whiteboard</a>
         <a href="#">Tools</a>
         <a href="#">Corporate Training</a>
      </div>
   </div>
   <div>
      <span class="material-symbols-outlined" onclick="openBtn()">MENU</span>
   </div>    
   <div class="content">
      <h2>Tutorialspoint</h2>
   </div>
</body>
  • 第2步 − 添加以下 CSS 代码。

对于动画效果,我们使用了CSS :hover选择器transform 属性。

<style>
   .material-symbols-outlined {
      font-variation-settings:
      'FILL' 0,
      'wght' 700,
      'GRAD' 0,
      'opsz' 48
   }
   body {
      background-color: #50C878;
   }
   #sidemenu {
      height: 100%;
      width: 0;
      position: fixed;
      z-index: 1;
      top: 0;
      left: 0;
      background-color: whitesmoke;
      overflow-x: hidden;
      transition: 0.5s;
      padding-top: 60px;
   }
   .mainNav {
      margin-top: 70px;
   }
   .mainNav a {
      font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
      margin-bottom: 15px;
   }
   .content {
      display: grid;
      place-items: center;
      height: 100vh;
   }
   .content h2 {
      font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
      text-align: center;
      text-transform: uppercase;
      font-size: 50px;
      color: white;
   }
   #sidemenu a {
      padding: 8px 8px 8px 10px;
      text-decoration: none;
      font-size: 25px;
      color: black;
      display: block;
      transition: 0.4s;
      text-align: center;
      text-transform: uppercase;
   }
   #sidemenu a:hover {
      color: black;
      background: #50C878;
   }
   #sidemenu .btn-area {
      position: absolute;
      top: 0;
      right: 15px;
   }
   span {
      position: absolute;
      right: 90px;
      top: 30px;
      font-size: 30px;
      transition: 0.3s;
      cursor: grab;
      color: #000;
   }
</style>
  • 步骤3 :包含以下脚本。

以下代码描述了打开和关闭按钮的功能。

<script>
   function openBtn(){
      document.getElementById("sidemenu").style.width = "250px";
   }
   function closeBtn(){
      document.getElementById("sidemenu").style.width = "0";
   }
</script>

完整示例

现在,让我们将以上所有HTML、CSS和JavaScript代码块结合起来

<!DOCTYPE html>
<head>
   <title>Animated Sidebar Navigation</title>
   <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" />
   <style>
      .material-symbols-outlined {
         font-variation-settings:
         'FILL' 0,
         'wght' 700,
         'GRAD' 0,
         'opsz' 48
      }
      body {
         background-color: #50C878;
      }
      #sidemenu {
         height: 100%;
         width: 0;
         position: fixed;
         z-index: 1;
         top: 0;
         left: 0;
         background-color: whitesmoke;
         overflow-x: hidden;
         transition: 0.5s;
         padding-top: 60px;
      }
      .mainNav {
         margin-top: 70px;
      }
      .mainNav a {
         font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
         margin-bottom: 15px;
      }
      .content {
         display: grid;
         place-items: center;
         height: 100vh;
      }
      .content h2 {
         font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
         text-align: center;
         text-transform: uppercase;
         font-size: 50px;
         color: white;
      }
      #sidemenu a {
         padding: 8px 8px 8px 10px;
         text-decoration: none;
         font-size: 25px;
         color: black;
         display: block;
         transition: 0.4s;
         text-align: center;
         text-transform: uppercase;
      }
      #sidemenu a:hover {
         color: black;
         background: #50C878;
      }
      #sidemenu .btn-area {
         position: absolute;
         top: 0;
         right: 15px;
      }
      span {
         position: absolute;
         right: 90px;
         top: 30px;
         font-size: 30px;
         transition: 0.3s;
         cursor: grab;
         color: #000;
      }
   </style>
</head>
<body>
   <div id="sidemenu">
      <a href="javscript:void(0)" class="btn-area" onclick="closeBtn()">Close</a>
      <div class="mainNav">
         <a href="#">Home</a>
         <a href="#">Coding Ground</a>
         <a href="#">Jobs</a>
         <a href="#">Whiteboard</a>
         <a href="#">Tools</a>
         <a href="#">Corporate Training</a>
      </div>
   </div>
   <div>
      <span class="material-symbols-outlined" onclick="openBtn()">MENU</span>
   </div>
   <div class="content">
      <h2>Tutorialspoint</h2>
   </div>
   <script>
      function openBtn(){
         document.getElementById("sidemenu").style.width = "250px";
      }
      function closeBtn(){
         document.getElementById("sidemenu").style.width = "0";
      }
   </script>
</body>
</html>

如果我们执行上述程序,我们可以在右上角看到菜单符号。如果我们点击这个按钮,侧边导航将会打开。要关闭导航栏,请点击侧边导航栏右上角的关闭按钮。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程