当前位置:首页 > JavaScript

js实现菜单横向显示

2026-04-04 18:16:04JavaScript

横向菜单的实现方法

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

纯CSS实现横向菜单

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

js实现菜单横向显示

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

响应式横向菜单

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

js实现菜单横向显示

@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样式:

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

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

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

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

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

相关文章

css菜单制作

css菜单制作

CSS 菜单制作方法 水平导航菜单 使用 display: inline-block 或 flexbox 可以轻松创建水平导航菜单。以下是一个基本示例: <nav> <ul c…

vue实现菜单管理

vue实现菜单管理

Vue 实现菜单管理方案 方案一:基于路由的动态菜单 通过 Vue Router 的路由配置自动生成菜单结构,适用于权限管理系统。在路由元信息(meta)中添加菜单相关配置: const route…

纯css制作tab菜单

纯css制作tab菜单

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

react如何实现菜单

react如何实现菜单

使用 React 实现菜单的方法 使用状态管理控制菜单显示/隐藏 通过 useState 管理菜单的展开和收起状态,结合点击事件切换状态。 import { useState } from 'rea…

实现树形菜单vue

实现树形菜单vue

实现树形菜单的Vue方案 递归组件实现 创建递归组件TreeMenu.vue,通过组件自身调用自身实现无限层级渲染: <template> <ul> <li…

vue实现横向表格

vue实现横向表格

横向表格的实现方法 在Vue中实现横向表格,可以通过调整CSS样式和数据结构来实现。横向表格与常规表格的区别在于数据的展示方向,通常需要将表头和数据行进行转置。 使用CSS Flex布局 通过Fle…