当前位置:首页 > JavaScript

js导航栏实现

2026-03-16 06:20:04JavaScript

基础HTML结构

使用<nav>标签包裹导航栏内容,内部通常为无序列表<ul>,每个列表项<li>包含链接<a>。示例代码:

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

CSS样式设计

通过CSS设置导航栏横向排列、悬停效果等。关键属性包括display: flexlist-style: none和伪类:hover

nav ul {
  display: flex;
  list-style: none;
  gap: 20px;
}
nav a:hover {
  color: #ff5722;
  text-decoration: underline;
}

响应式实现(移动端适配)

使用媒体查询@media调整小屏幕下的布局,常见做法是转换为汉堡菜单:

@media (max-width: 768px) {
  nav ul {
    flex-direction: column;
    display: none;
  }
  /* 汉堡菜单图标样式 */
  .menu-toggle {
    display: block;
  }
}

JavaScript交互功能

通过DOM操作实现菜单展开/折叠功能。示例使用classList.toggle

document.querySelector('.menu-toggle').addEventListener('click', () => {
  document.querySelector('nav ul').classList.toggle('active');
});

动态高亮当前页面

通过window.location.pathname检测当前URL,为对应导航项添加active类:

const navLinks = document.querySelectorAll('nav a');
navLinks.forEach(link => {
  if(link.href.includes(window.location.pathname)) {
    link.classList.add('active');
  }
});

平滑滚动效果

为页面内锚点链接添加滚动动画:

document.querySelectorAll('nav a[href^="#"]').forEach(anchor => {
  anchor.addEventListener('click', function(e) {
    e.preventDefault();
    document.querySelector(this.getAttribute('href')).scrollIntoView({
      behavior: 'smooth'
    });
  });
});

粘性定位实现

使用CSS的position: sticky让导航栏在滚动时保持可见:

js导航栏实现

nav {
  position: sticky;
  top: 0;
  background: white;
  z-index: 100;
}

标签: js
分享给朋友:

相关文章

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现图片轮播

js实现图片轮播

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

js防抖和节流实现

js防抖和节流实现

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

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…