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()方法)。

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


猜你喜欢

  • 1、四个边框 border-left 设置左边框,一般单独设置左边框样式使用border-right 设置右边框,一般单独设置右边框样式使用border-top 设置上边框,一般单独设置上边框样式使用border-bottom 设置下边框,一般单独设置下边框样式使用,有时可将下边框样式作为css下划线效果应用。

    CSS2020-01-15
  • /*用CSS控制将li标签竖排变横排*/ display: inline-block; /*内边距*/ padding /*外边距*/ margin

    CSS2020-01-15
  • font-weight参数: normal : 正常的字体。相当于number为400。声明此值将取消之前任何设置 bold : 粗体。相当于number为700。也相当于b对象的作用 bolder : IE5+ 特粗体

    CSS2020-01-15
  • 1、知音之交--伯牙子期 2、刎颈之交--廉颇相如 3、胶膝之交--陈重雷义 4、鸡黍之交--元伯巨卿 5、舍命之交--角哀伯桃 6、生死之交--刘备、张飞和关羽 7、管鲍之交--管仲和鲍叔牙

    小常识2020-01-15
  • 中国商帮历史悠久。山西商帮、徽州商帮、陕西商帮、山东商帮、福建商帮、洞庭商帮、广东(珠三角和潮汕)商帮、江右商帮、龙游商帮、宁波商帮是为十大商帮。其中晋商、徽商、潮商势力最大影响最深远。由于地区和历史原因,各商帮特点不同,北方善义,南方善商;北方厚重,南方灵活;北方重古典,南方更现代。

    小常识2020-01-15