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

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


猜你喜欢

  • 一般的文字截断(适用于内联与块):.text-overflow {     display:block;/*内联对象需加*/     width:31em;/*指定宽度*/     word-break:keep-all;/* 不换行 */

    CSS2020-04-13
  •     <!-- 声明文档使用的字符编码 -->     <meta charset='utf-8'>     <!-- 优先使用 IE 最新版本和 Chrome -->     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>

    html相关标签2020-07-06
  • <ul><!--{iCMS:article:list loop="true" row="20" }-->    <!--{if $article_list.first}--><li><!--{/if}-->    <!--{"$article_list.index % 2"}-->        <span><!--{$article_list.title}--></span>    <!--{if $article_list.index % 2}-->        <

    ICMS2020-07-13
  • CSS3 :nth-child() 选择器 定义和用法: :nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型。 n 可以是数字、关键词或公式。

    CSS2020-07-21
  • <script type="text/javascript">     $('.artbody *[style]').each(function(){    if($(this).css('text-align') == 'center')   $(this).css('text-indent', '0em'); });

    部分JS效果2020-07-30