news 2026/5/23 14:22:45

Tab选项卡

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Tab选项卡

1.选项卡由英雄联盟、DOTA、风暴英雄、300英雄四块组成; 2.未选择时,默认选中第一个标签页;3.选择某一选项后,下方跳出对应游戏的相关介绍内容。

解:1.获取元素

2.遍历<a>标签

3.绑定鼠标移入事件

(1)取消导航栏当前激活的active;(2)给鼠标移入的a 添加active

(3)内容区同上(1)(2)【添加第 i+1 个.item】

<!DOCTYPE html>

<html lang="zh-CN">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Document</title>

<style>

* {

margin: 0;

padding: 0;

}

.tab {

width: 500px;

height: 300px;

margin: 20x;

border: 1px solid black;

}

.tab-nav {

width: 100%;

height: 60px;

line-height: 60px;

display: flex;

justify-content: space-between;

}

.tab-nav ul {

list-style: none;

display: flex;

margin-left: flex-end;

}

.tab-nav ul li {

margin: 0 20px;

font-size: 14px;

}

.tab-nav ul li a {

text-decoration: none;

border-bottom: 2px solid transparent;

color: #333;

}

.tab-nav ul li a.active {

border-color: #e1251b;

color: #e1251b;

}

.tab-content {

padding: 0 16px;

}

.tab-content .item {

display: none;

}

.tab-content .item.active {

display: block;

}

</style>

</head>

<body>

<div class="tab">

<div class="tab-nav">

<ul>

<li><a class="active" href="javascript:;">英雄联盟</a></li>

<li><a href="javascript:;">DOTA</a></li>

<li><a href="javascript:;">风暴英雄</a></li>

<li><a href="javascript:;">300英雄</a></li>

</ul>

</div>

<div class="tab-content">

<div class="item active">这是一个英雄联盟游戏</div>

<div class="item">这是一个DOTA游戏</div>

<div class="item">这是一个风暴英雄游戏</div>

<div class="item">这是一个300英雄游戏</div>

</div>

</div>

<script>

// 获取元素

const as = document.querySelectorAll('.tab-nav a')

// 遍历所有<a>标签

for (let i =0; i < as.length; i++) {

// 绑定鼠标移入事件

as[i].addEventListener('mouseenter', function () {

// 取消导航栏当前激活的active(移除'active'类)

document.querySelector('.tab-nav .active').classList.remove('active')

// 给鼠标移入的a添加active

this.classList.add('active')

// 取消内容区当前激活的active(移除'active'类)

document.querySelector('.tab-content .active').classList.remove('active')

// 给内容区中第 i+1 个.item, 添加active (显示当前标签)

document.querySelector(`.tab-content .item:nth-child(${i + 1})`).classList.add('active')

})

}

</script>

</body>

</html>

第一遍复写

1.给内容区添加active,漏了一个括号【.item:nth-child(${i + 1})】(85行)

document.querySelector(`.tab-content .item:nth-child(${i + 1})`).classList.add('active')

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/15 4:40:39

OCAuxiliaryTools 完全指南:5步掌握OpenCore可视化配置

OCAuxiliaryTools 完全指南&#xff1a;5步掌握OpenCore可视化配置 【免费下载链接】OCAuxiliaryTools Cross-platform GUI management tools for OpenCore&#xff08;OCAT&#xff09; 项目地址: https://gitcode.com/gh_mirrors/oc/OCAuxiliaryTools OCAuxiliaryTool…

作者头像 李华
网站建设 2026/5/15 4:39:39

STM32系统架构深度解析:工业级温控系统完整方案实战案例

STM32系统架构深度解析&#xff1a;工业级温控系统完整方案实战案例 【免费下载链接】STM32 项目地址: https://gitcode.com/gh_mirrors/stm322/STM32 在嵌入式系统设计中&#xff0c;STM32微控制器凭借其强大的处理能力和丰富的外设资源&#xff0c;成为构建高可靠性工…

作者头像 李华
网站建设 2026/5/21 16:14:09

Linux framebuffer API核心接口open/read/write/close详解

从零开始玩转 Linux 帧缓冲&#xff1a;用open、read、write和close直接操控屏幕你有没有想过&#xff0c;不依赖任何图形界面&#xff0c;也能在一块 LCD 屏上画出图像&#xff1f;在没有 X11、没有 Wayland、甚至连 GUI 框架都没有的嵌入式设备里&#xff0c;是怎么把第一帧画…

作者头像 李华
网站建设 2026/5/22 9:42:57

RISC-V处理器中单精度浮点数指令集全面讲解

RISC-V处理器中的单精度浮点运算&#xff1a;从标准到实战在物联网、边缘AI和智能传感设备飞速发展的今天&#xff0c;嵌入式系统对计算能力的要求早已不再局限于简单的逻辑控制。越来越多的应用——比如语音识别前端处理、传感器融合、实时滤波器设计乃至轻量级神经网络推理—…

作者头像 李华
网站建设 2026/5/10 14:08:59

hcqHome:终极智能职教刷课助手,三行代码轻松解放双手

hcqHome&#xff1a;终极智能职教刷课助手&#xff0c;三行代码轻松解放双手 【免费下载链接】hcqHome 简单好用的刷课脚本[支持平台:职教云,智慧职教,资源库] 项目地址: https://gitcode.com/gh_mirrors/hc/hcqHome 还在为繁琐的职教在线课程而烦恼吗&#xff1f;每天花…

作者头像 李华
网站建设 2026/5/21 15:24:33

Perlego电子书PDF下载全攻略:3步搞定离线阅读

Perlego电子书PDF下载全攻略&#xff1a;3步搞定离线阅读 【免费下载链接】perlego-downloader Download books from Perlego.com in PDF format 项目地址: https://gitcode.com/gh_mirrors/pe/perlego-downloader 想要将Perlego平台上的电子书转换为PDF格式进行离线阅读…

作者头像 李华