标题:探索 HTML 与 JavaScript 实现的选项卡切换效果

目录

[一、HTML 结构设计](#一、HTML 结构设计)

[二、JavaScript 逻辑处理](#二、JavaScript 逻辑处理)


一、HTML 结构设计

  • 在给定的 HTML 代码中,整体结构是创建了多个div元素,每个div元素都包含一个ul(无序列表)和一个div(用于展示内容)。
  • 每个ul元素中的li元素代表一个选项卡的标题,而与之对应的div元素中的子div元素则是每个选项卡标题对应的内容区域。
html 复制代码
<div class="container">
    <ul class="tib_title">
        <li class="curent">title1</li>
        <li>title2</li>
        <li>title3</li>
        <li>title4</li>
    </ul>
    <div class="tab_content">
        <div>content1</div>
        <div>content2</div>
        <div>content3</div>
        <div>content4</div>
    </div>
</div>
  • 这种结构设计清晰地将选项卡的标题和内容进行了分离,方便后续通过 JavaScript 进行交互操作。

二、JavaScript 逻辑处理

  • 代码主要通过 JavaScript 实现了选项卡的切换效果。
  • 获取元素与属性设置
    • 首先,通过document.querySelectorAll获取所有的.container元素。对于每个.container,再获取其中的li元素(tab_title_li)和内容div元素(tab_content_div)。
    • 为每个li元素设置一个index属性,用于标记其在选项卡标题中的位置。
javascript 复制代码
var container = document.querySelectorAll(".container");
for (h = 0; h < container.length; h++) {
    var tab_title_li = container[h].querySelectorAll("li");
    for (var i = 0; i < tab_title_li.length; i++) {
        tab_title_li[i].setAttribute("index", i);
    }
}
  • 事件绑定与效果实现
    • 为每个li元素绑定mouseenter事件。当鼠标移入某个li元素时,先清除所有li元素的类名,然后将当前li元素的类名设置为curent
    • 根据当前li元素的index属性,找到对应的内容div元素,并将其display属性设置为block,其他内容div元素的display属性设置为none,从而实现选项卡内容的切换。
javascript 复制代码
tab_title_li[i].onmouseenter = function () {
    var curent_tab_title_li = this.parentNode.children;
    for (var j = 0; j < curent_tab_title_li.length; j++) {
        curent_tab_title_li[j].className = "";
    }
    this.className = "curent";

    var curent_index = this.getAttribute("index");
    var curent_tab_content_div = this.parentNode.nextElementSibling.children;
    for (var k = 0; k < curent_tab_content_div.length; k++) {
        if (curent_index == k) {
            curent_tab_content_div[k].style.display = "block";
        } else {
            curent_tab_content_div[k].style.display = "none";
        }
    }
};
  • 这种处理方式实现了一个简单而有效的选项卡切换效果,通过鼠标移入不同的选项卡标题,对应的内容区域就会显示出来。

通过对这段 HTML 和 JavaScript 代码的分析,我们可以看到如何巧妙地结合 HTML 的结构设计和 JavaScript 的交互逻辑来实现一个常见的网页交互效果 - 选项卡切换。这其中涉及到了元素的获取、属性的设置以及事件的绑定等多个方面的知识。

相关推荐
麻芝汤圆26 分钟前
MapReduce 入门实战:WordCount 程序
大数据·前端·javascript·ajax·spark·mapreduce
Peter 谭3 小时前
React Hooks 实现原理深度解析:从基础到源码级理解
前端·javascript·react.js·前端框架·ecmascript
周胡杰3 小时前
鸿蒙接入flutter环境变量配置windows-命令行或者手动配置-到项目的创建-运行demo项目
javascript·windows·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
乌夷4 小时前
axios结合AbortController取消文件上传
开发语言·前端·javascript
wuyijysx6 小时前
JavaScript grammar
前端·javascript
溪饱鱼6 小时前
第6章: SEO与交互指标
服务器·前端·microsoft
学渣y8 小时前
React状态管理-对state进行保留和重置
javascript·react.js·ecmascript
_龙衣8 小时前
将 swagger 接口导入 apifox 查看及调试
前端·javascript·css·vue.js·css3
struggle20259 小时前
continue通过我们的开源 IDE 扩展和模型、规则、提示、文档和其他构建块中心,创建、共享和使用自定义 AI 代码助手
javascript·ide·python·typescript·开源
x-cmd10 小时前
[250512] Node.js 24 发布:ClangCL 构建,升级 V8 引擎、集成 npm 11
前端·javascript·windows·npm·node.js