当前位置:首页 > JavaScript

js实现菜单横向显示

2026-01-31 02:19:57JavaScript

实现横向菜单的基本方法

使用HTML和CSS结合JavaScript可以实现横向菜单。HTML定义菜单结构,CSS控制样式布局,JavaScript处理交互逻辑。

<ul id="menu">
  <li><a href="#">首页</a></li>
  <li><a href="#">产品</a></li>
  <li><a href="#">服务</a></li>
  <li><a href="#">关于</a></li>
  <li><a href="#">联系</a></li>
</ul>
#menu {
  list-style-type: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: #333;
}

#menu li {
  float: left;
}

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

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

使用Flexbox布局实现

现代CSS的Flexbox布局可以更简洁地实现横向菜单,无需float属性。

#menu {
  display: flex;
  list-style-type: none;
  padding: 0;
  background-color: #333;
}

#menu li {
  flex: 1;
}

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

添加JavaScript交互效果

为菜单项添加鼠标悬停和点击效果,增强用户体验。

document.querySelectorAll('#menu li a').forEach(link => {
  link.addEventListener('mouseenter', function() {
    this.style.backgroundColor = '#555';
  });

  link.addEventListener('mouseleave', function() {
    this.style.backgroundColor = '';
  });

  link.addEventListener('click', function(e) {
    e.preventDefault();
    console.log('导航至: ' + this.textContent);
    // 实际应用中替换为页面跳转或内容加载逻辑
  });
});

响应式设计处理

添加媒体查询使菜单在不同屏幕尺寸下保持良好显示。

@media screen and (max-width: 600px) {
  #menu {
    flex-direction: column;
  }

  #menu li {
    width: 100%;
  }
}

动态生成菜单项

通过JavaScript动态生成菜单项,便于维护和扩展。

js实现菜单横向显示

const menuItems = [
  { text: '首页', url: '#' },
  { text: '产品', url: '#' },
  { text: '服务', url: '#' },
  { text: '关于', url: '#' },
  { text: '联系', url: '#' }
];

const menu = document.getElementById('menu');
menuItems.forEach(item => {
  const li = document.createElement('li');
  const a = document.createElement('a');
  a.href = item.url;
  a.textContent = item.text;
  li.appendChild(a);
  menu.appendChild(li);
});

标签: 横向菜单
分享给朋友:

相关文章

vue实现菜单定位

vue实现菜单定位

实现菜单定位的方法 在Vue中实现菜单定位功能,可以通过监听滚动事件或使用Intersection Observer API来判断当前显示的菜单项,并高亮对应的导航链接。以下是几种常见的实现方式:…

css制作横向菜单

css制作横向菜单

使用 Flexbox 制作横向菜单 Flexbox 是制作横向菜单的现代方法,代码简洁且兼容性好。以下是一个基本实现: <nav class="horizontal-menu"> &…

vue实现横排菜单

vue实现横排菜单

实现横排菜单的方法 在Vue中实现横排菜单可以通过多种方式完成,以下是几种常见的实现方法。 使用Flex布局实现横排菜单 通过CSS Flex布局可以轻松实现横排菜单,代码简洁且兼容性好。 <…

vue横向滑动实现

vue横向滑动实现

Vue 横向滑动实现方法 使用 CSS Flexbox 布局 在容器元素上设置 display: flex 和 overflow-x: auto,子元素设置 flex-shrink: 0 防止被压缩。…

vue实现横向拖拽

vue实现横向拖拽

实现横向拖拽的基本思路 使用 Vue 实现横向拖拽功能通常涉及监听鼠标事件(mousedown、mousemove、mouseup),计算拖拽距离,并动态更新元素位置。以下是核心实现方法: 基础实现…

vue 树形菜单实现

vue 树形菜单实现

Vue 树形菜单实现方法 递归组件实现 递归组件是Vue中实现树形结构的常见方式。通过组件调用自身实现无限层级嵌套。 <template> <ul> <li…