You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在现有HTML结构中实现点击Season触发下拉菜单的功能

实现方案

你可以通过修改HTML结构+添加CSS样式+简单JS逻辑实现需求,步骤如下:

1. 修改原有HTML结构

找到Season对应的li标签,添加下拉菜单容器,修改后代码如下:

<ul class="video-meta">
  <li>
    <a href="#">
      <img src="assets/images/6b1345063abbc415fde0677567f2cf59.jpg" alt="Bayley"></a>
    <span class="pl-10"> Bayley</span>
  </li>
  <li>
    <i class="fas fa-eye"></i>1260 Views
  </li>
  <!-- 修改后的Season下拉模块 -->
  <li class="season-dropdown">
    <i class="fas fa-tags"></i> <a href="archive.html" class="season-trigger">Season</a>
    <ul class="season-options">
      <li><a href="your-season1-link">Season 1</a></li>
      <li><a href="your-season2-link">Season 2</a></li>
    </ul>
  </li>
  <li>
    <i class="fas fa-photo-video"></i> 2 h 20 min
  </li>
  <li>
    <i class="fas fa-calendar-alt"></i> Nov 2020
  </li>
  <li>
    <i class="fas fa-film"></i> 4K
  </li>
</ul>

2. 添加CSS样式

控制下拉菜单的默认隐藏状态和显示样式,避免挤压原有页面布局:

/* 给下拉父级加相对定位,作为下拉菜单的定位参照 */
.season-dropdown {
  position: relative;
}
/* 下拉菜单默认隐藏 */
.season-options {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  list-style: none;
  margin: 4px 0 0 0;
  padding: 8px 0;
  background-color: #ffffff;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  min-width: 100px;
  z-index: 999;
}
/* 下拉选项样式 */
.season-options li {
  padding: 6px 12px;
}
.season-options li a {
  color: #333;
  text-decoration: none;
}
.season-options li:hover {
  background-color: #f5f5f5;
}
/* 激活类,控制下拉显示 */
.season-options.show {
  display: block;
}

3. 添加JS交互逻辑

实现点击切换下拉显示、点击页面其他区域自动收起的效果:

const seasonTrigger = document.querySelector('.season-trigger')
const seasonOptions = document.querySelector('.season-options')

// 点击Season链接切换下拉状态
seasonTrigger.addEventListener('click', function(e) {
  // 如果需要保留点击Season跳转archive.html的逻辑,删掉下面这行即可
  e.preventDefault()
  seasonOptions.classList.toggle('show')
})

// 点击页面其他区域收起下拉
document.addEventListener('click', function(e) {
  if (!e.target.closest('.season-dropdown')) {
    seasonOptions.classList.remove('show')
  }
})

可选纯CSS方案(不推荐用于复杂场景)

如果不想写JS,也可以通过:focus伪类实现简单点击显示效果,不需要额外加JS代码,只需要给Season的a标签加tabindex="0"属性,再添加如下CSS即可:

.season-trigger:focus + .season-options {
  display: block;
}

缺点是点击下拉选项时会触发a标签失焦,下拉会直接收起,仅适合不需要点击下拉项跳转的场景。

内容的提问来源于stack exchange,提问作者user16773013

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:51:02