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')

第二遍复写 正确

相关推荐
rocky1912 小时前
网页版时钟
前端·javascript·html
Jing_Rainbow4 小时前
【 前端三剑客-39 /Lesson65(2025-12-12)】从基础几何图形到方向符号的演进与应用📐➡️🪜➡️🥧➡️⭕➡️🛞➡️🧭
前端·css·html
纆兰5 小时前
汇款单的完成
前端·javascript·html
克里斯蒂亚诺更新8 小时前
https写一个定位当前位置获取经纬度的H5页面
css·网络协议·https
NEXT069 小时前
CSS 选择器深度实战:从“个十百千”权重法到零 DOM 动画的降维打击
前端·css
二DUAN帝9 小时前
像素流与UE通信
前端·javascript·css·ue5·html·ue4·html5
jinmo_C++9 小时前
从零开始学前端 · HTML 基础篇(二):常用文本标签与排版基础
前端·html
38242782710 小时前
JS正则表达式实战:核心语法解析
开发语言·前端·javascript·python·html
阿呆59111 小时前
html前端开发注释的写法
前端·html
.又是新的一天.11 小时前
【前端Web开发HTML5+CSS3+移动web视频教程】02 html - 列表、表格、表单
前端·html·html5