4种JavaScript实现简单tab选项卡切换的方法


Posted in Javascript onJanuary 06, 2016

本文实例讲解了4种JavaScript实现简单tab选项卡切换的方法,分享给大家供大家参考,具体内容如下
效果图:

 4种JavaScript实现简单tab选项卡切换的方法

方法一:for循环+if判断当前点击与自定义数组是否匹配

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>tab切换</title>
 <style type="text/css">
 button {
  width:120px;
  height: 32px;
  line-height: 32px;
  background-color: #ccc;
  font-size: 24px;
 }
 div {
  display: none;
  width:200px;
  height: 200px;
  font-size: 72px;
  color:#ddd;
  background-color: green;
  border:1px solid black;
 }
 </style>
</head>
<body>
 <button style="background-color: yellow;">1</button>
 <button>2</button>
 <button>3</button>
 <button>4</button>
 <div style="display:block;">1</div>
 <div>2</div>
 <div>3</div>
 <div>4</div>
 <script type="text/javascript">
 //定义数组并获取数组内各个的节点
 var buttonArr = document.getElementsByTagName("button");
 var divArr = document.getElementsByTagName("div");
 for(var i = 0; i < buttonArr.length;i++) {
 buttonArr[i].onclick = function() {
  //this 
  // alert(this.innerHTML)
  //for循环遍历button数组长度
  for(var j = 0; j < buttonArr.length; j++) {
  //重置所有的button样式
  buttonArr[j].style.backgroundColor = "#ccc";
  //给当前的(点击的那个)那个button添加样式
  this.style.backgroundColor = "yellow";
  //隐藏所有的div
  divArr[j].style.display = "none";
  //判断当前点击是按钮数组中的哪一个?
  if(this == buttonArr[j]) {
   // alert(j);
   //显示点击按钮对应的div
   divArr[j].style.display = "block";
  }
  }
 }
 }
 </script>
</body>
</html>

方法二:自定义index为当前点击

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>tab切换</title>
 <style type="text/css">
 button {
  width:120px;
  height: 32px;
  line-height: 32px;
  background-color: #ccc;
  font-size: 24px;
 }
 div {
  display: none;
  width:200px;
  height: 200px;
  font-size: 72px;
  color:#ddd;
  background-color: green;
  border:1px solid black;
 }
 </style>
</head>
<body>
 <button style="background-color: yellow;">1</button>
 <button>2</button>
 <button>3</button>
 <button>4</button>
 <div style="display:block;">1</div>
 <div>2</div>
 <div>3</div>
 <div>4</div>
 <script type="text/javascript">
 var buttonArr = document.getElementsByTagName("button");
 var divArr = document.getElementsByTagName("div");
 for(var i = 0; i < buttonArr.length;i++) {
 buttonArr[i].index = i;
 // buttonArr[i].setAttribute("index",i);
 buttonArr[i].onclick = function() {
  for(var j = 0; j < buttonArr.length; j++) {
  buttonArr[j].style.backgroundColor = "#ccc";
  buttonArr[this.index].style.backgroundColor = "yellow";
  divArr[j].style.display = "none";
  divArr[this.index].style.display = "block";
  }
 }
 }
 
 </script>
</body>
</html>

方法三:className

<!doctype html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>tab</title>
 <style type="text/css">
 * {padding:0; margin:0;}
 button {
  background-color: #ccc;
  width:80px;
  height: 30px;
 }
 .btn-active {
  background-color: yellow;
  font-weight:bold;
  font-size: 14px;
 }
 div{
  width:200px;
  height: 200px;
  font-size: 64px;
  background-color: #0c0;
  display: none;
  color:#fff;
 }
 .div-active {
  display: block;
 }
 </style>
</head>
<body>
 <button class="btn-active">按钮1</button>
 <button>按钮2</button>
 <button>按钮3</button>
 <button>按钮4</button>
 <div class="div-active">1</div>
 <div>2</div>
 <div>3</div>
 <div>4</div>
 <script type="text/javascript">
 //1.先获取元素
 var buttonList = document.getElementsByTagName("button");
 var divList = document.getElementsByTagName("div");
 //2.添加事件
 for(var i = 0; i < buttonList.length; i++) {
 buttonList[i].index = i;
 buttonList[i].onclick = function() {
  for(var j = 0; j < buttonList.length;j++) {
  buttonList[j].className = "";
  divList[j].className = "";
  }
  this.className = "btn-active";
  divList[this.index].className = "div-active";
 }
 }
 </script>
</body>
</html>

方法四:className+匿名函数的自执行

<!doctype html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>tab</title>
 <style type="text/css">
 * {padding:0; margin:0;}
 button {
  background-color: #ccc;
  width:80px;
  height: 30px;
 }
 .btn-active {
  background-color: yellow;
  font-weight:bold;
  font-size: 14px;
 }
 div{
  width:200px;
  height: 200px;
  font-size: 64px;
  background-color: #0c0;
  display: none;
  color:#fff;
 }
 .div-active {
  display: block;
 }
 </style>
</head>
<body>
 <button class="btn-active">按钮1</button>
 <button>按钮2</button>
 <button>按钮3</button>
 <button>按钮4</button>
 <div class="div-active">1</div>
 <div>2</div>
 <div>3</div>
 <div>4</div>
 <script type="text/javascript">
 //1.先获取元素
 var buttonList = document.getElementsByTagName("button");
 var divList = document.getElementsByTagName("div");
 //2.添加事件
 for(var i = 0; i < buttonList.length; i++) {
 (function(i){ //匿名函数自执行
  buttonList[i].onclick = function() {
  for(var j = 0; j < buttonList.length;j++) {
   buttonList[j].className = "";
   divList[j].className = "";
  }
  this.className = "btn-active";
  divList[i].className = "div-active";
  }
 })(i)
 }
 </script>
</body>
</html>

如果大家还想深入学习,可以点击两个精彩的专题:javascript选项卡操作方法汇总 jquery选项卡操作方法汇总

希望本文所述对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
jquery三个关闭弹出层的小示例
Nov 05 Javascript
jquery validate在ie8下的bug解决方法
Nov 13 Javascript
js动态添加删除,后台取数据(示例代码)
Nov 25 Javascript
JS图片自动轮换效果实现思路附截图
Apr 30 Javascript
JS数组array元素的添加和删除方法代码实例
Jun 01 Javascript
jquery与ajax获取特殊字符实例详解
Jan 08 Javascript
使用jquery+iframe做一个ajax上传效果(实例)
Aug 24 jQuery
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
Aug 25 Javascript
jQuery响应滚动条事件功能示例
Oct 14 jQuery
快速了解vue-cli 3.0 新特性
Feb 28 Javascript
ES6顶层对象、global对象实例分析
Jun 14 Javascript
vue 内联样式style中的background用法说明
Aug 05 Javascript
js针对ip地址、子网掩码、网关的逻辑性判断
Jan 06 #Javascript
js判断当前页面在移动设备还是在PC端中打开
Jan 06 #Javascript
js判断当前页面用什么浏览器打开的方法
Jan 06 #Javascript
javascript中闭包(Closure)详解
Jan 06 #Javascript
果断收藏9个Javascript代码高亮脚本
Jan 06 #Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
Jan 05 #Javascript
JavaScript实现简单的tab选项卡切换
Jan 05 #Javascript
You might like
PHP4引用文件语句的对比
2006/10/09 PHP
PHP实现下载功能的代码
2012/09/29 PHP
PHP下使用CURL方式POST数据至API接口的代码
2013/02/14 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
PHP中header用法小结
2016/05/23 PHP
写了一个layout,拖动条连贯,内容区可为iframe
2007/08/19 Javascript
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
2013/11/13 Javascript
js读取json的两种常用方法示例介绍
2014/10/19 Javascript
javascript实现带节日和农历的日历特效
2015/02/01 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
javascript cookie的简单应用
2016/02/24 Javascript
浅谈JavaScript变量的自动转换和语句
2016/06/12 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
2016/11/07 Javascript
JavaScript中浅讲ajax图文详解
2016/11/11 Javascript
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
webpack实现热加载自动刷新的方法
2017/07/30 Javascript
vuex + axios 做登录验证 并且保存登录状态的实例
2018/09/16 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
微信小程序swiper禁止用户手动滑动代码实例
2019/08/23 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
微信小程序实现点击页面出现文字
2020/09/21 Javascript
python绘图库Matplotlib的安装
2014/07/03 Python
python中input()与raw_input()的区别分析
2016/02/27 Python
Python教程之全局变量用法
2016/06/27 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
2019/08/02 Python
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
会计人员岗位职责
2014/03/19 职场文书
找规律教学反思
2016/02/23 职场文书
导游词之寿县报恩寺
2020/01/19 职场文书
pytorch通过训练结果的复现设置随机种子
2021/06/01 Python
Django使用redis配置缓存的方法
2021/06/01 Redis