当前位置:网站首页>Web APIs 综合案例-Tab栏切换 丨黑马程序员
Web APIs 综合案例-Tab栏切换 丨黑马程序员
2022-06-30 20:10:00 【黑马程序员官方】
学过了以上内容,今天我们来做一个综合的案例:Tab栏切换

分析:
html代码:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8" />
<title></title>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
ul {
list-style: none;
}
.wrapper {
width: 1000px;
height: 475px;
margin: 0 auto;
margin-top: 100px;
}
.tab {
border: 1px solid #ddd;
border-bottom: 0;
height: 36px;
width: 320px;
}
.tab li {
position: relative;
float: left;
width: 80px;
height: 34px;
line-height: 34px;
text-align: center;
cursor: pointer;
border-top: 4px solid #fff;
}
.tab span {
position: absolute;
right: 0;
top: 10px;
background: #ddd;
width: 1px;
height: 14px;
overflow: hidden;
}
.products {
width: 1002px;
border: 1px solid #ddd;
height: 476px;
}
.products .main {
float: left;
display: none;
}
.products .main.active {
display: block;
}
.tab li.active {
border-color: red;
border-bottom: 0;
}
</style>
</head>
<body>
<div class="wrapper">
<ul class="tab">
<li class="tab-item active">国际大牌<span>◆</span></li>
<li class="tab-item">国妆名牌<span>◆</span></li>
<li class="tab-item">清洁用品<span>◆</span></li>
<li class="tab-item">男士精品</li>
</ul>
<div class="products">
<div class="main active">
<a href="###"><img src="imgs/guojidapai.jpg" alt="" /></a>
</div>
<div class="main">
<a href="###"><img src="imgs/guozhuangmingpin.jpg" alt="" /></a>
</div>
<div class="main">
<a href="###"><img src="imgs/qingjieyongpin.jpg" alt="" /></a>
</div>
<div class="main">
<a href="###"><img src="imgs/nanshijingpin.jpg" alt="" /></a>
</div>
</div>
</div>
<script>
// 0. 获取元素
// 得到所有的小li
let lis = document.querySelectorAll('.tab .tab-item')
let divs = document.querySelectorAll('.products .main')
// 1. 头部tab栏切换模块
// 1.1 先给4个小li添加点击事件
for (let i = 0; i < lis.length; i++) {
lis[i].addEventListener('click', function () {
// console.log(11)
// 找到以前的active 类,移除掉
document.querySelector('.tab .active').classList.remove('active')
// 当前的元素添加
this.classList.add('active')
// 2. 底部显示隐藏模块 一定要写到点击事件的里面
document.querySelector('.products .active').classList.remove('active')
// div对应序号的那个加上active
divs[i].classList.add('active')
})
}
</script>
</body>
</html>素材图片:



你做的怎么样呢?评论去可以告诉我哦~~
黑马前端专栏干货多多,关注再学,好方便~
2022年前端学习路线图:课程、源码、笔记,技术栈 另外此线路图实时更新!需要课后资料的友友们,可以直接告诉我。

边栏推荐
- Jerry's question about long press boot detection [chapter]
- 杰理之触摸按键识别流程【篇】
- SQL必需掌握的100个重要知识点:创建和操纵表
- What bank card do you need to open an account online? In addition, is it safe to open an account online now?
- Lambda expression principle analysis and learning (June 23, 2022)
- QT QStringList用法
- Jerry's touch key recognition process [chapter]
- Lumiprobe染料酰肼丨BDP FL 酰肼方案
- Scene 299
- 哈夫曼樹(一)基本概念與C語言實現
猜你喜欢

Lumiprobe染料 NHS 酯丨BDP FL NHS 酯研究

分析超700万个研发需求发现,这八大编程语言才是行业最需要的

Great God detailed open source Buff gain Introduction 丨 Live

By analyzing more than 7million R & D needs, it is found that these eight programming languages are the most needed by the industry

BioVendor sRAGE Elisa试剂盒测试原理和注意事项

Lvalue reference and lvalue reference

大神详解开源 BUFF 增益攻略丨直播

Maya House Modeling

基于开源流批一体数据同步引擎ChunJun数据还原—DDL解析模块的实战分享

PHP require/include 区别
随机推荐
Exness: the final value of US GDP unexpectedly accelerated to shrink by 1.6%
Lumiprobe 聚乙二醇化和 PEG 接头丨碘-PEG3-酸研究
哈夫曼树(一)基本概念与C语言实现
Implementation principle of PostgreSQL heap table storage engine
How do I get the largest K massive data
Peking University ACM problems 1000:a+b problem
Heartbeat 与DRBD 配置过程
Summary of PHP file upload (garbled code, move failure, permission, display picture)
Lambda 表达式原理分析学习(2022.06.23)
Lumiprobe蛋白质定量丨QuDye 蛋白定量试剂盒
Maya house modeling
Lingyun going to sea | 10 leap &huawei cloud: jointly helping Africa with inclusive financial services
Go language identifier and package name specification
Jerry's touch key recognition process [chapter]
以全栈全功能解决方案,应对多样工具复杂环境DevOps落地难题
Qt和其它GUI库的对比
北京大学ACM Problems 1000:A+B Problem
1045 error occurred in MySQL login. Modification method [easy to understand]
Evolution of screen display technology
C file pointer