• <…">
    当前位置:首页 > 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实现左右菜单通常需要两个主要组件:左侧的导航菜单和右侧的内容区域。左侧菜单用于导航,右侧区域根据菜单选择动态展示内容。 创建左侧菜单组件 左侧菜单通常是一个列表,…

    js实现倒计时

    js实现倒计时

    实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterva…

    纯css制作tab菜单

    纯css制作tab菜单

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

    css3结合js制作

    css3结合js制作

    CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Java…

    js实现跳转

    js实现跳转

    使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

    js实现打印

    js实现打印

    使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…