• <…">
    当前位置:首页 > JavaScript

    js实现菜单

    2026-01-15 14:55:46JavaScript

    实现基本HTML结构

    使用HTML创建菜单的基本框架,通常包含<ul><li>元素。示例结构如下:

    <ul id="menu">
      <li><a href="#home">Home</a></li>
      <li><a href="#services">Services</a></li>
      <li><a href="#about">About</a></li>
    </ul>

    添加CSS样式

    通过CSS为菜单添加基础样式,例如水平或垂直布局、悬停效果等:

    js实现菜单

    #menu {
      list-style-type: none;
      margin: 0;
      padding: 0;
      display: flex; /* 水平菜单 */
    }
    #menu li a {
      display: block;
      padding: 8px 16px;
      text-decoration: none;
      color: #333;
    }
    #menu li a:hover {
      background-color: #eee;
    }

    实现下拉菜单功能

    通过JavaScript动态控制下拉菜单的显示/隐藏:

    document.querySelectorAll('#menu li').forEach(item => {
      if (item.querySelector('ul')) {
        item.addEventListener('mouseenter', () => {
          item.querySelector('ul').style.display = 'block';
        });
        item.addEventListener('mouseleave', () => {
          item.querySelector('ul').style.display = 'none';
        });
      }
    });

    响应式菜单实现

    使用JavaScript和CSS媒体查询实现移动端适配:

    js实现菜单

    const menuToggle = document.createElement('button');
    menuToggle.textContent = 'Menu';
    document.body.prepend(menuToggle);
    
    menuToggle.addEventListener('click', () => {
      const menu = document.getElementById('menu');
      menu.style.display = menu.style.display === 'none' ? 'block' : 'none';
    });

    添加动画效果

    通过CSS transitions或JavaScript实现平滑的菜单动画:

    #menu li ul {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.3s ease-out;
    }
    #menu li:hover ul {
      max-height: 500px; /* 足够大的值容纳内容 */
    }

    键盘导航支持

    为菜单添加无障碍访问支持:

    document.querySelectorAll('#menu a').forEach(link => {
      link.addEventListener('keydown', e => {
        if (e.key === 'Enter') {
          e.target.click();
        }
      });
    });

    标签: 菜单js
    分享给朋友:

    相关文章

    vue 实现菜单

    vue 实现菜单

    Vue 实现菜单的方法 使用 Vue 实现菜单可以通过多种方式,以下是几种常见的方法: 使用 Vue Router 实现动态路由菜单 通过 Vue Router 可以动态生成菜单,根据路由配置自动…

    css菜单制作

    css菜单制作

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

    js实现

    js实现

    JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

    vue实现js休眠

    vue实现js休眠

    Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Pro…

    js实现vue路由

    js实现vue路由

    Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue…

    css制作下拉菜单

    css制作下拉菜单

    CSS 制作下拉菜单的方法 使用纯 CSS 可以创建简单的下拉菜单效果,主要依赖 :hover 伪类和 display 属性控制子菜单的显示与隐藏。 基础 HTML 结构 <div c…