tab栏切换原理
发布时间 - 2026-01-11 00:18:16 点击率:次本文是我学习tab栏切换时的笔记,步骤很详细。比较适用于JavaScript初学者

1.基础 - 排他思想
如图,点击任意一个按钮,当前按钮应该显示橘色,其他显示默认颜色灰色。
代码运行步骤:
利用for循环遍历5个按钮;
选中的按钮进行 onclick 事件时,首先删除所有按钮的类名,使其全部显示灰色(34行);
然后给当前点击的按钮添加指定类名,使其显示橘色(37行)。
示例代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>tab栏切换效果</title>
<style media="screen">
*{
margin: 0;
padding: 0;
border: 0 none;
outline: none;
}
#btns{
width: 300px;
margin: 100px auto;
}
#btns button {
width: 60px;
height: 30px;
float: left;
border-right: 1px solid #ccc;
}
.color{
background-color: #eb923f;
}
</style>
<script type="text/javascript">
window.onload = function () {
var btns = document.getElementById("btns").getElementsByTagName("button");
for (var i = 0; i < btns.length; i++) {
btns[i].onclick = function () {
for (var j = 0; j < btns.length; j++) {
//把所有的button清空类名
btns[j].className = "";
}
//点击的那个盒子添加指定类名
this.className = "color";
}
}
}
</script>
</head>
<body>
<div id="btns">
<button class="color">按钮1</button>
<button>按钮2</button>
<button>按钮3</button>
<button>按钮4</button>
<button>按钮5</button>
</div>
</body>
</html>
2.tab栏切换
如图:在排他思想的基础上,五个按钮底下添加五个新盒子,并用一个大盒子将按钮和底下的盒子包裹。
底下的盒子全部隐藏,默认只显示第一个。
新增步骤:
为btns[i]添加自定义属性index,用来关联下面的大盒子(42行);
点击按钮后先让底下的盒子全部隐藏(54行);
然后给当前所点击按钮相关联的盒子添加指定属性(57行)。
示例代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>tab栏切换效果</title>
<style media="screen">
*{
margin: 0;
padding: 0;
border: 0 none;
outline: none;
}
.baohan{
width: 300px;
margin: 100px auto;
border: 1px solid #ccc;
}
#btns button {
width: 60px;
height: 30px;
float: left;
border-right: 1px solid #ccc;
}
#divs div {
width: 300px;
height: 100px;
font-size: 60px;
padding-top: 60px;
background-color: #eb923f;
text-align: center;
display: none;
}
.color{
background-color: #eb923f;
}
</style>
<script type="text/javascript">
window.onload = function () {
var btns = document.getElementById("btns").getElementsByTagName("button");
var divs = document.getElementById("divs").getElementsByTagName("div");
for (var i = 0; i < btns.length; i++) {
btns[i].index = i; //自定义属性,用于关联下面的大盒子
btns[i].onclick = function () {
for (var j = 0; j < btns.length; j++) {
//把所有的button清空类名
btns[j].className = "";
}
//点击的那个盒子添加指定类名
this.className = "color";
for (var i = 0; i < divs.length; i++) {
//先让底下的div全部隐藏
divs[i].style.display = "none";
}
//然后给当前所点击按钮相关联的盒子添加指定属性
divs[this.index].style.display = "block";
}
}
}
</script>
</head>
<body>
<div class="baohan">
<div id="btns">
<button class="color">按钮1</button>
<button>按钮2</button>
<button>按钮3</button>
<button>按钮4</button>
<button>按钮5</button>
</div>
<div id="divs">
<div style="display:block;">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
</div>
</body>
</html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# tab切换原理
# tab栏切换
# tab切换的原理
# Vue.js组件tab实现选项卡切换
# Vue.js组件tabs实现选项卡切换效果
# 用AngularJS的指令实现tabs切换效果
# 原生js实现tab选项卡切换
# 一个精简的JS DIV层tab切换代码
# js(JavaScript)实现TAB标签切换效果的简单实例
# javascript实现tabs选项卡切换效果(自写原生js)
# 一个js的tab切换效果代码[代码分离]
# javascript实现tab切换的四种方法
# 基于jquery的tab切换 js原理
# 自定义
# 使其
# 相关联
# 如图
# 先让
# 清空
# 橘色
# 第一个
# 基础上
# 遍历
# 适用于
# 只显示
# media
# title
# utf
# head
# meta
# gt
# html
# charset
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
Android仿QQ列表左滑删除操作
手机网站制作与建设方案,手机网站如何建设?
Android实现代码画虚线边框背景效果
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
昵图网官网入口 昵图网素材平台官方入口
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
如何在云虚拟主机上快速搭建个人网站?
如何在IIS管理器中快速创建并配置网站?
,网页ppt怎么弄成自己的ppt?
如何构建满足综合性能需求的优质建站方案?
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
如何用花生壳三步快速搭建专属网站?
三星网站视频制作教程下载,三星w23网页如何全屏?
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
简单实现Android验证码
javascript中的try catch异常捕获机制用法分析
JavaScript如何实现错误处理_try...catch如何捕获异常?
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
用yum安装MySQLdb模块的步骤方法
微信小程序 input输入框控件详解及实例(多种示例)
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践
黑客入侵网站服务器的常见手法有哪些?
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
Laravel storage目录权限问题_Laravel文件写入权限设置
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
如何用狗爹虚拟主机快速搭建网站?
如何快速完成中国万网建站详细流程?
Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南
非常酷的网站设计制作软件,酷培ai教育官方网站?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
Laravel如何生成URL和重定向?(路由助手函数)
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
网站制作软件有哪些,制图软件有哪些?
制作电商网页,电商供应链怎么做?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
Python进程池调度策略_任务分发说明【指导】
Python制作简易注册登录系统

