ETJava Beta | Java    注册   登录
  • HTML 导航栏模板1

    发表于 2024-12-20 21:16:18     阅读(179)     博客类别:HTML

    一个有趣的导航栏模板

     

     

    源码

     

    <!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">
      <link rel="stylesheet" href="style.css">
        <title>Document</title>
    </head>
    
    <body>
      <nav class="navigation">
        <ul >
          <li class="list active" style="--clr:#f44336"><a href="#"> <span class="icon"><ion-icon name="home-outline"></ion-icon></span></a></li>
          <li class="list" style="--clr:#ffa117" ><a href="#"> <span class="icon"><ion-icon name="person-outline"></ion-icon></span></a></li>
          <li class="list" style="--clr:#0fc70f"><a href="#"> <span class="icon"><ion-icon name="chatbubble-outline"></span></ion-icon></a></li>
          <li class="list" style="--clr:#2196f3"><a href="#"> <span class="icon"><ion-icon name="settings-outline"></ion-icon></span></a></li>
          <li class="list" style="--clr:#b145e9"><a href="#"> <span class="icon"><ion-icon name="camera-outline"></ion-icon></span></a></li>
          <div class="indicator"></div>
        </ul>
      </nav>
    
      <script type="module" src="https://unpkg.com/ionicons@5.5.2/dist/ionicons/ionicons.esm.js"></script>
      <script nomodule src="https://unpkg.com/ionicons@5.5.2/dist/ionicons/ionicons.js"></script>
      <script>
        const list  =  document.querySelectorAll(".list");
        
      
        function activeLink(){
            console.log("1");
          list.forEach((element) => 
           element.classList.remove('active')
          );
          this.classList.add('active');
        } 
    
        list.forEach((element) => 
          element.addEventListener('click',activeLink)    
        );
    
    
      </script>
    </body>
    </html>

     

    style.css

     

    *{
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }
    
    body {
      display: flex;
      justify-content: center;
      align-items: center;
      min-height: 100vh;
      background-color: #222327;
    }
    
    .navigation{
    
      position: relative;
      background-color: #fff;
      width: 400px;
      height: 60px;
      display: flex;
      justify-content: center;
      align-items: center;
      border-radius: 10px;
    }
    
    .navigation ul  {
      display: flex;
      width: 350px;
    }
    
    .navigation ul li {
      list-style: none;
      position: relative;
      width: 70px;
      height: 60px;
      z-index: 2 ;
    }
    
    
    .navigation ul li a {
      position: relative;
      display: flex;
      justify-content: center;
      align-items: center;
      width: 100%;
      height: 100%;
    }
    
    .navigation ul li a .icon{
      position: relative;
      width: 55px;
      height: 55px;
      text-align: center;
      line-height: 65px;
      border-radius: 50%;
      font-size: 1.5em;
      color: #222327;
      transition: 0.5s;
      transition-delay: 0s;
    }
    
    .navigation ul li.active a .icon{
        background: var(--clr);
        color: #fff;
        transform: translateY(-27px);
        transition-delay: 0.25s;
    }
    
    .navigation ul li a .icon::before{
      content: "";
      position: absolute;
      top: 10px;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: var(--clr);
      border-radius: 50%;
      filter: blur(5px);
      opacity: 0;
      transition: 0.5s;
      transition-delay: 0s;
    }
      
    
    .navigation ul li.active a .icon::before{
      opacity: 0.5;
      transition-delay: 0.25s;
    }
    
    .indicator{
     position: absolute;
     width: 70px;
     height: 70px;
     background-color: #fff;
     top: -35px;
     border-radius: 50%;
     z-index: 1;
     transition: 0.5s;
    }
    
    .indicator::before{
      content: "";
      position: absolute;
      top: 5px;
      left: -28px;
      background-color: transparent;
      width: 30px;
      height: 30px;
      border-radius: 50%;
      box-shadow: 15px 18px #fff;
    }
    
    .indicator::after{
      content: "";
      position: absolute;
      top: 5px;
      right: -28px;
      background-color: transparent;
      width: 30px;
      height: 30px;
      border-radius: 50%;
      box-shadow: -15px 18px #fff;
    }
    
    .navigation ul li:nth-child(1).active ~ .indicator{
      transform: translateX(calc(70px*  0));
    }
    .navigation ul li:nth-child(2).active ~ .indicator{
      transform: translateX(calc(70px * 1));
    }
    .navigation ul li:nth-child(3).active ~ .indicator{
      transform: translateX(calc(70px * 2));
    }
    .navigation ul li:nth-child(4).active ~ .indicator{
      transform: translateX(calc(70px * 3));
    }
    .navigation ul li:nth-child(5).active ~ .indicator{
      transform: translateX(calc(70px * 4));
    }

     

上一篇: HTML 开场页面模板


下一篇:HTML 转盘模板