当前位置:首页 > JavaScript

实现下拉菜单js

2026-04-04 23:24:59JavaScript

使用HTML和JavaScript创建下拉菜单

通过HTML的<select>元素结合JavaScript事件监听,可以快速实现基础下拉菜单功能。

<select id="myDropdown">
  <option value="">请选择</option>
  <option value="option1">选项1</option>
  <option value="option2">选项2</option>
  <option value="option3">选项3</option>
</select>

<script>
  document.getElementById('myDropdown').addEventListener('change', function() {
    const selectedValue = this.value;
    if(selectedValue) {
      console.log('选中:', selectedValue);
      // 这里添加选择后的处理逻辑
    }
  });
</script>

自定义样式下拉菜单

使用CSS和JavaScript实现更美观的自定义下拉菜单:

<div class="custom-dropdown">
  <button class="dropdown-toggle">选择项目 ▼</button>
  <ul class="dropdown-menu">
    <li data-value="item1">项目一</li>
    <li data-value="item2">项目二</li>
    <li data-value="item3">项目三</li>
  </ul>
</div>

<style>
  .custom-dropdown {
    position: relative;
    display: inline-block;
  }
  .dropdown-toggle {
    padding: 8px 16px;
    background: #f0f0f0;
    border: 1px solid #ddd;
    cursor: pointer;
  }
  .dropdown-menu {
    display: none;
    position: absolute;
    list-style: none;
    padding: 0;
    margin: 0;
    border: 1px solid #ddd;
    width: 100%;
  }
  .dropdown-menu li {
    padding: 8px 16px;
    cursor: pointer;
  }
  .dropdown-menu li:hover {
    background: #f5f5f5;
  }
</style>

<script>
  const toggle = document.querySelector('.dropdown-toggle');
  const menu = document.querySelector('.dropdown-menu');

  toggle.addEventListener('click', () => {
    menu.style.display = menu.style.display === 'block' ? 'none' : 'block';
  });

  document.querySelectorAll('.dropdown-menu li').forEach(item => {
    item.addEventListener('click', () => {
      toggle.textContent = item.textContent + ' ▼';
      console.log('选择了:', item.dataset.value);
      menu.style.display = 'none';
    });
  });
</script>

使用框架实现下拉菜单

以jQuery为例快速实现功能丰富的下拉菜单:

<select id="jqueryDropdown">
  <option value="">选择...</option>
  <option value="cat">猫咪</option>
  <option value="dog">狗狗</option>
  <option value="bird">小鸟</option>
</select>

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
  $(document).ready(function() {
    $('#jqueryDropdown').change(function() {
      const val = $(this).val();
      if(val) {
        alert('您选择了: ' + val);
      }
    });
  });
</script>

响应式下拉菜单实现

针对移动端优化的响应式下拉菜单方案:

<nav class="responsive-menu">
  <button class="menu-toggle">菜单 ☰</button>
  <ul class="dropdown-content">
    <li><a href="#home">首页</a></li>
    <li><a href="#services">服务</a></li>
    <li><a href="#about">关于</a></li>
    <li><a href="#contact">联系</a></li>
  </ul>
</nav>

<style>
  .menu-toggle {
    display: none;
    background: #333;
    color: white;
    border: none;
    padding: 10px 15px;
    font-size: 16px;
  }
  .dropdown-content {
    display: flex;
    list-style: none;
  }
  .dropdown-content li a {
    display: block;
    padding: 10px 15px;
    text-decoration: none;
    color: #333;
  }

  @media (max-width: 768px) {
    .menu-toggle {
      display: block;
    }
    .dropdown-content {
      display: none;
      flex-direction: column;
      width: 100%;
    }
    .dropdown-content.show {
      display: flex;
    }
  }
</style>

<script>
  const toggleBtn = document.querySelector('.menu-toggle');
  const menu = document.querySelector('.dropdown-content');

  toggleBtn.addEventListener('click', () => {
    menu.classList.toggle('show');
  });
</script>

动态加载下拉选项

通过JavaScript动态加载下拉菜单选项的示例:

实现下拉菜单js

<select id="dynamicDropdown"></select>

<script>
  const dropdown = document.getElementById('dynamicDropdown');
  const options = [
    { value: 'red', text: '红色' },
    { value: 'green', text: '绿色' },
    { value: 'blue', text: '蓝色' }
  ];

  // 清空现有选项
  dropdown.innerHTML = '<option value="">请选择颜色</option>';

  // 动态添加选项
  options.forEach(option => {
    const optElement = document.createElement('option');
    optElement.value = option.value;
    optElement.textContent = option.text;
    dropdown.appendChild(optElement);
  });

  // 添加事件监听
  dropdown.addEventListener('change', function() {
    if(this.value) {
      console.log('选择的颜色:', this.value);
    }
  });
</script>

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

相关文章

如何制作css导航菜单

如何制作css导航菜单

创建基本HTML结构 导航菜单的基础是HTML结构。使用<nav>标签包裹无序列表<ul>,每个菜单项用<li>标签表示,链接用<a>标签。 <…

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

css div 制作导航菜单

css div 制作导航菜单

使用 CSS 和 Div 制作导航菜单 导航菜单是网站的重要组成部分,以下是通过 CSS 和 div 元素制作导航菜单的方法。 基本 HTML 结构 创建一个简单的 div 结构作为导航菜单的基础:…