FFan丶Blog / 部分JS效果 / / 两个列表,鼠标经过列表名切换

两个列表,鼠标经过列表名切换

分类:部分JS效果 发布时间:2024-03-07 14:32:42来源:FFan丶Blog
要实现两个列表之间通过鼠标悬停列表名来切换显示内容的功能,你可以使用HTML、CSS和JavaScript。下面是一个简单的例子,演示了如何实现这一功能: HTML:<div class="list-switcher">...

要实现两个列表之间通过鼠标悬停列表名来切换显示内容的功能,你可以使用HTML、CSS和JavaScript。下面是一个简单的例子,演示了如何实现这一功能:

HTML:

<div class="list-switcher">
  <h2 class="list-title active" data-target="list1">列表1</h2>
  <h2 class="list-title" data-target="list2">列表2</h2>

  <ul id="list1" class="list active">
    <li>项目1-1</li>
    <li>项目1-2</li>
    <li>项目1-3</li>
  </ul>
  <ul id="list2" class="list">
    <li>项目2-1</li>
    <li>项目2-2</li>
    <li>项目2-3</li>
  </ul>
</div>

CSS:

.list-switcher {
  position: relative;
}

.list-title {
  cursor: pointer;
  /* 添加悬停样式 */
}

.list-title.active {
  /* 添加活动状态的样式 */
}

.list {
  display: none;
  /* 列表默认隐藏 */
}

.list.active {
  display: block;
  /* 活动列表显示 */
}

JavaScript:

document.addEventListener('DOMContentLoaded', function() {
  var listTitles = document.querySelectorAll('.list-title');
  var lists = document.querySelectorAll('.list');

  listTitles.forEach(function(listTitle) {
    listTitle.addEventListener('mouseover', function() {
      // 移除所有列表和活动标题的类
      lists.forEach(function(list) {
        list.classList.remove('active');
      });
      listTitles.forEach(function(title) {
        title.classList.remove('active');
      });

      // 给当前标题和对应列表添加活动类
      listTitle.classList.add('active');
      var targetList = document.getElementById(listTitle.dataset.target);
      if (targetList) {
        targetList.classList.add('active');
      }
    });
  });
});

在这个例子中,.list-switcher是包含列表标题和列表的容器。每个列表标题(&lt;h2&gt;元素)都有一个data-target属性,该属性的值与对应列表的id相匹配。当鼠标悬停在列表标题上时,JavaScript代码会移除所有列表和列表标题的active类,然后只给当前悬停的列表标题和对应的列表添加active类。CSS规则则定义了.active类使得对应的列表显示出来。

请确保你的HTML、CSS和JavaScript代码都正确加载,并且JavaScript代码在DOM完全加载后执行(通过监听DOMContentLoaded事件或使用jQuery的$(document).ready()方法)。

这样,当你把鼠标移到不同的列表标题上时,对应的列表就会显示出来,而其他列表则会隐藏。


猜你喜欢

  • /* 核心样式:限制p标签最多显示2行,超出隐藏 */ p {   /* 基础布局:必须设置宽度(否则无法触发截断) */   width: 300px; /* 可根据实际需求调整,比如100% */

    CSS2026-03-13
  • 这两个标签都能实现表单提交按钮,但用法、功能、兼容性差异很大,以下是详细对比:一、核心区别一句话总结<input type="submit">:纯文本按钮,只能显示文字,不能嵌套标签,样式限制多。<button>:容器型按钮,可以放文字、图片、图标、HTML 标签,功能更强、更灵活。二、代码用法对比1. <input type="submit">语法格式:<input type="submit" value="提交表单"&g

    html相关标签2026-04-14
  • /* =========================================================    文章正文统一样式    强制覆盖文章 HTML 内联 CSS    ========================================================= */

    CSS2026-09-24
  • ✅ PC端自动两列布局 ✅ 平板自动适配 ✅ 手机端单列显示 ✅ 包含文章标题、发布日期、文章摘要 ✅ Hover动画效果 ✅ 卡片阴影、圆角设计,美观简洁 ✅ 纯HTML+CSS,无任何依赖

    html相关标签2026-09-24