当前位置:首页 > 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动态生成菜单项,便于维护和扩展。

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);
});

js实现菜单横向显示

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

相关文章

css菜单制作

css菜单制作

基础水平菜单制作 使用无序列表<ul>和<li>标签构建结构,CSS设置横向排列: <ul class="horizontal-menu"> <li&…

vue实现导航菜单

vue实现导航菜单

Vue 实现导航菜单的方法 基础路由导航实现 在 Vue 项目中,使用 vue-router 可以轻松实现导航菜单功能。首先安装并配置路由: npm install vue-router 在 rou…

css制作横向菜单

css制作横向菜单

使用浮动(Float)实现横向菜单 将菜单项的 display 属性设置为 float: left,使列表项横向排列。清除浮动避免影响后续布局。 ul.horizontal-menu { lis…

纯css制作tab菜单

纯css制作tab菜单

纯CSS制作Tab菜单的方法 使用radio input控制切换 通过<input type="radio">和<label>元素配合实现无JavaScript的Tab切换效果…

jquery 菜单

jquery 菜单

jQuery 菜单实现方法 使用 jQuery 创建动态菜单可以通过多种方式实现,以下是几种常见的方法: 基于 HTML 和 CSS 的基础结构 创建菜单的 HTML 结构通常使用无序列表 &…

vue实现左右菜单

vue实现左右菜单

实现左右菜单的基本思路 使用Vue实现左右菜单通常需要两个主要组件:左侧的导航菜单和右侧的内容区域。左侧菜单负责导航功能,右侧区域根据菜单选择动态展示对应内容。 创建基本组件结构 在Vue项目中创…