…">
当前位置:首页 > JavaScript

js实现导航栏

2026-01-30 10:16:58JavaScript

实现导航栏的基本结构

使用HTML创建导航栏的基本框架,通常包含<nav>标签和列表项<ul><li>

<nav id="navbar">
  <ul>
    <li><a href="#home">首页</a></li>
    <li><a href="#about">关于</a></li>
    <li><a href="#services">服务</a></li>
    <li><a href="#contact">联系</a></li>
  </ul>
</nav>

添加CSS样式

通过CSS设置导航栏的布局和外观,例如水平排列、背景色和悬停效果。

js实现导航栏

#navbar {
  background-color: #333;
  overflow: hidden;
}

#navbar ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  display: flex;
}

#navbar li a {
  display: block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}

#navbar li a:hover {
  background-color: #111;
}

使用JavaScript实现交互功能

通过JavaScript动态修改导航栏行为,例如高亮当前页面或添加响应式菜单。

js实现导航栏

高亮当前页面链接

document.querySelectorAll('#navbar li a').forEach(link => {
  if (link.href === window.location.href) {
    link.classList.add('active');
  }
});

响应式折叠菜单

添加一个按钮,在小屏幕下折叠导航栏。

<button id="menu-toggle">菜单</button>
const toggleButton = document.getElementById('menu-toggle');
const navbar = document.getElementById('navbar');

toggleButton.addEventListener('click', () => {
  navbar.classList.toggle('active');
});

完整代码示例

结合HTML、CSS和JavaScript实现完整导航栏。

<!DOCTYPE html>
<html>
<head>
  <style>
    #navbar {
      background-color: #333;
      overflow: hidden;
    }
    #navbar ul {
      list-style-type: none;
      margin: 0;
      padding: 0;
      display: flex;
    }
    #navbar li a {
      display: block;
      color: white;
      text-align: center;
      padding: 14px 16px;
      text-decoration: none;
    }
    #navbar li a:hover {
      background-color: #111;
    }
    #menu-toggle {
      display: none;
    }
    @media (max-width: 600px) {
      #navbar ul {
        flex-direction: column;
        display: none;
      }
      #navbar.active ul {
        display: flex;
      }
      #menu-toggle {
        display: block;
      }
    }
  </style>
</head>
<body>
  <button id="menu-toggle">菜单</button>
  <nav id="navbar">
    <ul>
      <li><a href="#home">首页</a></li>
      <li><a href="#about">关于</a></li>
      <li><a href="#services">服务</a></li>
      <li><a href="#contact">联系</a></li>
    </ul>
  </nav>
  <script>
    document.querySelectorAll('#navbar li a').forEach(link => {
      if (link.href === window.location.href) {
        link.classList.add('active');
      }
    });

    const toggleButton = document.getElementById('menu-toggle');
    const navbar = document.getElementById('navbar');
    toggleButton.addEventListener('click', () => {
      navbar.classList.toggle('active');
    });
  </script>
</body>
</html>

标签: js
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div c…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="sli…