通常我们用 js 写 tab 栏切换功能会用到 排他思想,即干掉其他人,留下我自己

但也可以用一个更有效率的方法:找出那个特殊的人,精准干掉他,放过其他无辜的人,然后留下我自己

实现过程:假设需要切换的样式类为 active类,要干掉那个唯一的active类

document.querySelector('.active').classList.remove('active')

之后再去给自己设置 active类 就可以啦!

// this指需要切换的tab元素
this.classList.add('active')

柯南tab栏案例练习:

代码示例:

HTML:

<div class="card"><ul class="tab"><li class="tab-items active">柯南</li><li class="tab-items">小兰</li><li class="tab-items">小哀</li><li class="tab-items">基德</li></ul><div class="info"><div class="main active"><p>外表看似小孩,其真实身份是高中生侦探——工藤新一。</p></div><div class="main"><p>新一的青梅竹马,一直喜欢着新一,在他突然消失后等待着他的归来。</p></div><div class="main"><p>外表是小孩,但其实是黑衣组织的一员,新一被灌下的毒药(APTX4869)的开发者,代号雪莉。</p></div><div class="main"><p>变装达人。轰动世界的神出鬼没的怪盗。总是会送上预告函,将警察玩弄于股掌之间,被世人称作“怪盗基德”。</p></div></div>
</div>

JS:

// 获取元素
let tabs = document.querySelectorAll('.tab .tab-items')
let mains = document.querySelectorAll('.info .main')// 监听tab栏点击事件
for (let i = 0; i < tabs.length; i++) {tabs[i].addEventListener('click', function(){// 切换tab栏样式// 将原本有active类的那个tab的active类移除掉document.querySelector('.tab-items.active').classList.remove('active')// 给触发点击事件的tab增加active类this.classList.add('active')// 切换下方内容区// 隐藏原本显示的那个内容区document.querySelector('.main.active').classList.remove('active')// 显示当前tab对应的内容区mains[i].classList.add('active')})
}

CSS:

* {margin: 0;padding: 0;
}li {list-style: none;
}.card {width: 400px;margin: 100px auto;
}.tab {display: flex;justify-content: space-between;align-items: stretch;width: 400px;height: 50px;
}.tab .tab-items {width: 94px;line-height: 50px;background-color: rgb(207, 139, 138);font-size: 18px;text-align: center;text-decoration: none;cursor: pointer;
}.tab .tab-items.active {background-color: rgb(171, 197, 222);
}.info {height: 250px;
}.info .main {display: none;width: 400px;height: 250px;padding: 15px;box-sizing: border-box;background-color: rgb(171, 197, 222);font-size: 21px;
}.info .main.active {display: block;
}

结束;

JavaScript基础 - 经典案例3 - tab栏选项卡切换相关推荐

  1. 案例:tab 栏切换(重点案例)

    案例:tab 栏切换(重点案例) 业务需求: 当鼠标点击上面相应的选项卡(tab),下面内容跟随变化. 案例分析: (1)Tab 栏切换有2个大的模块. (2)上面的模块选项卡,点击某一个,当前这一个 ...

  2. javascript高级编程教程,javascript基础入门案例

    谁有比较好的javascript视频教程 李炎恢的javascript教程,在verycd上可以下载. 结合<javascript高级程序设计>学习,应该会比较好,他这个教程就是参考了&l ...

  3. 纯CSS实现Tab栏的切换

    思路 利用input标签的radio类型中的checked属性控制当前选中tab 隐藏radio的显示,用label标签的for属性关联radio,对label进行样式编写实现tab栏的自定义. 一个 ...

  4. tab栏自动切换功能 鼠标移动上去取消自动切换 离开启动自动切换

    <!DOCTYPE html> <html><head><meta charset="utf-8" /><meta name= ...

  5. js实现tab栏的切换

    目录 实现点击变色效果: 点击之后下面的内容跟着变化 全部代码: 最后: 界面效果图如上,点击第二栏后第二栏变为红色,下面显示第二栏的内容. html代码:如下 <header class=&q ...

  6. oracle写转帐的存储过程,Oracle存储过程及块编程基础经典案例

    Oracle存储过程及块编程基础案例 pl/sql(procedure language/sql:过程语言)编程是oracle的精髓之所在.跑得慢: 提高应用程序的运行性能,提高效率. 1.作为存储过 ...

  7. uniapp tab 栏选项卡与内容区域联动

    1.这个是shi t <template><view class="tab"><!-- 横向滚动 --><scroll-view scro ...

  8. javaScript算术题(经典案例)

    案例1        求1~100之间所有数的总和和平均值 <script>let sum = 0;let average = 0;for(let i = 1; i <= 100; ...

  9. 原生JS幻灯片案例——与tab栏切换类似

    幻灯片案例 样式: 1. 这个问题是因为img是xxx元素,display:block 就没问题了 2. 主图也是写好6个盒子,展示的显示,剩余的隐藏.通过添加删除类名来呈现 3. 类名修改的方法可有 ...

最新文章

  1. 【NLP】经典分类模型朴素贝叶斯解读
  2. CRM Fiori offline技术实现:js/createStores.js
  3. 计算机英语第六单元,计算机专业英语第六版第十单元课后汉译英,We do use other forms....这个do...
  4. 基于easypoi实现自定义模板导出excel
  5. php 网站上传大小限制吗,配置PHP程序网站上传文件大小的限制!
  6. 深度模型不work?这有一份超全的Debug检查清单
  7. 初识 Vue(01)---(输出 Hello World)
  8. VG SketchPad编辑器——可嵌入的jQuery插件
  9. linux环境下编译Qt源码
  10. 《百面机器学习》读书笔记
  11. “学习金字塔理论”--了解,认知与实践
  12. 计算机证书都需要哪些知识,计算机资格证书有哪些计算机专业证书有哪些
  13. kali里的powersploit、evasion、weevely等工具的杂项记录
  14. 一文读懂沃尔玛、腾讯、京东、浙商银行在供应链领域的区块链应用实例
  15. 【PaLM2】PaLM2 大语言模型与 Bard 使用体验
  16. [半闲之人] 关于SteamVR摄像机和普通摄像机冲突的解决办法
  17. Ditto 复制粘贴
  18. 传遍朋友圈的Workflow,到底是什么鬼
  19. 从SUMSUNG闪存芯片编号识容量
  20. 大数据实战 --- 淘宝用户行为数据分析

热门文章

  1. javaWeb项目用过滤器filter实现登陆成功后才能访问主页面,否则直接输入主页面的地址自动跳转到登陆界面
  2. 药房信息管理系统c语言程序,C语言程序设计药房管理系统
  3. 计算机基础知识统考选择题,[电脑基础知识]计算机应用基础统考选择题.doc
  4. 基于Springboot在线拍卖竞拍系统(java springboot FreeMarker mysql )1001
  5. 前端传来的参数后端无法正确接收
  6. 知名作家入驻拼多多“众声创作者计划”,共生向上的力量
  7. 基于深度学习GPU+FPGA 双光谱视频处理模块
  8. 数值转换lexical_cast的使用
  9. 淘宝直播录播无人直播违规怎么办?
  10. Buuctf [网鼎杯 2020 青龙组]jocker 题解