…">
当前位置:首页 > 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设置导航栏的布局和外观,例如水平排列、背景色和悬停效果。

#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动态修改导航栏行为,例如高亮当前页面或添加响应式菜单。

高亮当前页面链接

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实现完整导航栏。

js实现导航栏

<!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实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…

js实现轮播代码

js实现轮播代码

基础轮播实现 使用HTML、CSS和JavaScript创建一个简单的轮播效果。HTML部分定义轮播容器和图片元素。 <div class="carousel"> <div c…

js实现复制功能实现

js实现复制功能实现

使用document.execCommand方法(传统方式,已逐渐被弃用) 传统方式通过document.execCommand('copy')实现复制功能,需先选中文本。以下是一个完整示例: fu…