…">
当前位置:首页 > 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实现图片上传

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

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…

js 实现页面刷新

js 实现页面刷新

使用 location.reload() location.reload() 是原生 JavaScript 提供的页面刷新方法。调用该方法会重新加载当前页面,相当于点击浏览器的刷新按钮。 // 基本…