当前位置:首页 > JavaScript

js实现菜单横向显示

2026-04-04 18:16:04JavaScript

横向菜单的实现方法

使用HTML和CSS结合JavaScript可以轻松实现横向菜单。以下是几种常见的实现方式:

纯CSS实现横向菜单

通过CSS的display: flexdisplay: inline-block属性可以直接实现横向排列:

<ul class="horizontal-menu">
  <li><a href="#">首页</a></li>
  <li><a href="#">产品</a></li>
  <li><a href="#">服务</a></li>
  <li><a href="#">关于我们</a></li>
</ul>
.horizontal-menu {
  display: flex;
  list-style: none;
  padding: 0;
}

.horizontal-menu li {
  margin-right: 20px;
}

.horizontal-menu li a {
  text-decoration: none;
  color: #333;
}

JavaScript动态创建横向菜单

使用JavaScript动态生成横向菜单:

const menuItems = ['首页', '产品', '服务', '关于我们'];
const menuContainer = document.createElement('ul');
menuContainer.className = 'horizontal-menu';

menuItems.forEach(item => {
  const menuItem = document.createElement('li');
  const link = document.createElement('a');
  link.href = '#';
  link.textContent = item;
  menuItem.appendChild(link);
  menuContainer.appendChild(menuItem);
});

document.body.appendChild(menuContainer);

响应式横向菜单

结合媒体查询实现响应式布局:

@media (max-width: 768px) {
  .horizontal-menu {
    flex-direction: column;
  }
}

带下拉功能的横向菜单

实现带下拉功能的横向菜单:

const menuItems = [
  { name: '首页', submenu: null },
  { name: '产品', submenu: ['产品A', '产品B'] },
  { name: '服务', submenu: ['服务1', '服务2'] }
];

const menu = document.createElement('ul');
menu.className = 'horizontal-menu';

menuItems.forEach(item => {
  const li = document.createElement('li');
  const a = document.createElement('a');
  a.href = '#';
  a.textContent = item.name;
  li.appendChild(a);

  if (item.submenu) {
    const submenu = document.createElement('ul');
    submenu.className = 'submenu';
    item.submenu.forEach(subItem => {
      const subLi = document.createElement('li');
      const subA = document.createElement('a');
      subA.href = '#';
      subA.textContent = subItem;
      subLi.appendChild(subA);
      submenu.appendChild(subLi);
    });
    li.appendChild(submenu);
  }

  menu.appendChild(li);
});

document.body.appendChild(menu);

对应的CSS样式:

js实现菜单横向显示

.horizontal-menu {
  display: flex;
  list-style: none;
}

.submenu {
  display: none;
  position: absolute;
}

.horizontal-menu li:hover .submenu {
  display: block;
}

这些方法可以根据具体需求选择使用,纯CSS方案适合简单菜单,JavaScript方案则更适合动态内容或复杂交互需求。

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

相关文章

vue实现菜单

vue实现菜单

使用 Vue 实现菜单 Vue 可以轻松实现动态菜单,通常结合路由和组件化思想。以下是一个基于 Vue 3 和 Vue Router 的菜单实现方案: 基础菜单结构 在 Vue 中,菜单通常是一个递…

css制作菜单

css制作菜单

CSS 制作菜单的方法 使用 CSS 可以制作多种风格的菜单,包括水平菜单、垂直菜单、下拉菜单等。以下是几种常见的实现方式。 水平菜单 水平菜单通常用于导航栏,可以通过 display: inlin…

php 实现级联菜单

php 实现级联菜单

实现级联菜单的方法 级联菜单(Cascading Dropdown)通常用于根据前一个选择动态加载下一个菜单的选项。以下是使用PHP和JavaScript(Ajax)实现级联菜单的详细方法。 数据库…

vue实现菜单递归

vue实现菜单递归

Vue 实现菜单递归的方法 在 Vue 中实现菜单递归通常需要组件调用自身,适用于多级嵌套的菜单结构。以下是几种常见的实现方式: 使用递归组件 递归组件是 Vue 中实现菜单递归的最直接方法。组件通…

vue菜单怎么实现

vue菜单怎么实现

实现Vue菜单的基本方法 在Vue中实现菜单功能可以通过多种方式完成,以下是几种常见的方法: 使用v-for动态渲染菜单项 通过数据驱动的方式生成菜单,便于维护和扩展。定义菜单数据数组,利用v-f…

vue实现横向列表

vue实现横向列表

实现横向列表的方法 在Vue中实现横向列表可以通过CSS样式控制列表项的排列方式。横向列表通常用于导航菜单、图片展示等场景。 使用flex布局实现 flex布局是实现横向列表最简单的方法之一,通过设…