JavaScript实现tab栏切换效果


Posted in Javascript onMarch 16, 2020

本文实例为大家分享了JavaScript实现tab栏切换效果的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>Document</title>
  <!-- css样式 -->
 <style>
  * {
   margin: 0;
   padding: 0;
  }
  .box {
   width: 600px;
   margin: 100px 500px;
   border: 1px solid #999;
  }
  li {
   list-style: none;
  }
  .tab_top {
   width: 600px;
   height: 50px;
   background-color: #ccc;
  }
  .tab_top li {
   float: left;
   width: 50px;
   height: 50px;
   line-height: 50px;
   text-align: center;
   padding: 0 20px;
  }
  .current {
   background-color: red;
   color: #fff;
  }
  .tab_con {
   width: 600px;
   height: 300px;
   background-color: #fff;
  }
  先在css里面设置下面小div全部隐藏
  .item {
   display: none
  }
 </style>
 <!-- html结构 -->
 <body>
 <div class="box">
  <div class="tab_top">
   <ul>
    <li class="current">标题一</li>
    <li>标题二</li>
    <li>标题三</li>
    <li>标题四</li>
    <li>标题五</li>
   </ul>
  </div>
  <div class="tab_con">
   <div class="item" style="display: block;"> --->此处默认第一个显示
    我是内容一<br>
    我是内容一<br>
    我是内容一<br>
    我是内容一<br>
    我是内容一<br>
   </div>
   <div class="item">
    我是内容二<br>
    我是内容二<br>
    我是内容二<br>
    我是内容二<br>
    我是内容二<br>
   </div>
   <div class="item">
    我是内容三<br>
    我是内容三<br>
    我是内容三<br>
    我是内容三<br>
    我是内容三<br>
   </div>
   <div class="item">
    我是内容四<br>
    我是内容四<br>
    我是内容四<br>
    我是内容四<br>
    我是内容四<br>
   </div>
   <div class="item">
    我是内容五<br>
    我是内容五<br>
    我是内容五<br>
    我是内容五<br>
    我是内容五<br>
    我是内容五<br>
   </div>
  </div>
 </div>
</body>

js:

<script>
 //1 上的选项卡 点击某一个 当前这一个底色是红色 其余不变 (排他思想) 修改类名的方法
 //获取元素
 //01 获取上半部分盒子
 var tab_top = document.querySelector('.tab_top');
 //02 获取上班部分 所有小li 得到一个数组
 var lis = tab_top.querySelectorAll('li');
 //03 获取下半部分 所有小div盒子 得到一个数组
 var item = document.querySelectorAll('.item')
 //for 循环所有小li 绑定点击事件
 for (var i = 0; i < lis.length; i++) {
  //开始给上面li设置索引号 属性index 值 i 
  lis[i].setAttribute('index', i);
  // 注册点击事件
  lis[i].onclick = function () {
   // 来个排他思想
   for (var j = 0; j < lis.length; j++) {
    //先让所有的li 点击没有样式
    lis[j].className = '';
   }
   // 谁点击 谁加样式
   this.className = 'current'
   //2 下面显示内容模块也要写在onclick里面 因为一一对应
   // 给上面top 所有li 添加index 索引号 属性从0开始 自定义属性

   // 上面已经设置好 现在拿来用
   var index = this.getAttribute('index');
   // 点击上面li 对应下面div显示出来
   //再来排他思想 先干掉其他人 让隐藏 点谁 谁显示
   for (var k = 0; k < item.length; k++) {
    //所有的小div 隐藏
    item[k].style.display = 'none'
   }
   //点击哪个小li 小li的index对应的div 显示
   item[index].style.display = 'block';

  }

 }

</script>

效果图:

JavaScript实现tab栏切换效果

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery ui dialog里调用datepicker的问题
Aug 06 Javascript
JavaScript 32位整型无符号操作示例
Dec 08 Javascript
字段太多jquey快速清空表单内容方法
Aug 21 Javascript
Bootstrap 附加导航(Affix)插件实例详解
Jun 01 Javascript
js输入框使用正则表达式校验输入内容的实例
Feb 12 Javascript
jquery ui sortable拖拽后保存位置
Apr 27 jQuery
把JavaScript代码改成ES6语法不完全指南(分享)
Sep 10 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
Aug 01 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
Sep 27 Javascript
vue Tab切换以及缓存页面处理的几种方式
Nov 05 Javascript
JS XMLHttpRequest原理与使用方法深入详解
Apr 30 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
Oct 26 Javascript
vue-cli3使用mock数据的方法分析
Mar 16 #Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
Mar 16 #Javascript
vue从零实现一个消息通知组件的方法详解
Mar 16 #Javascript
JavaScript实现动态留言板
Mar 16 #Javascript
vue中的双向数据绑定原理与常见操作技巧详解
Mar 16 #Javascript
js+canvas实现纸牌游戏
Mar 16 #Javascript
微信小程序利用button控制条件标签的变量问题
Mar 15 #Javascript
You might like
锁定年轻人的双倍活力 星巴克推出星倍醇即饮浓咖啡
2021/03/03 咖啡文化
浅析php设计模式之数据对象映射模式
2016/03/03 PHP
PHP面向对象程序设计之对象的遍历操作示例
2019/06/12 PHP
在JavaScript中通过URL传递汉字的方法
2007/04/09 Javascript
javascript web页面刷新的方法收集
2009/07/02 Javascript
JavaScript 对象的属性和方法4种不同的类型
2010/03/19 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
2015/12/04 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
element-ui 关于获取select 的label值方法
2018/08/24 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
Vue.js如何使用Socket.IO的示例代码
2019/09/05 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
原生js实现日期选择插件
2020/05/21 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
python循环监控远程端口的方法
2015/03/14 Python
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
Python实现调度算法代码详解
2017/12/01 Python
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
记一次Django响应超慢的解决过程
2020/09/17 Python
scrapy redis配置文件setting参数详解
2020/11/18 Python
python字符串拼接+和join的区别详解
2020/12/03 Python
奥地利顶级内衣丝袜品牌英国站:Wolford英国
2016/08/29 全球购物
长青弘远的面试题
2012/06/09 面试题
实习教师个人的自我评价
2013/11/08 职场文书
大学生两会学习心得体会
2014/03/10 职场文书
解除劳动合同协议书范本
2014/04/14 职场文书
2014年母亲节寄语
2014/05/07 职场文书
九一八事变演讲稿范文
2014/09/14 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
学生党支部工作总结2015
2015/05/26 职场文书
基于go interface{}==nil 的几种坑及原理分析
2021/04/24 Golang
python cv2图像质量压缩的算法示例
2021/06/04 Python
Python Matplotlib绘制条形图的全过程
2021/10/24 Python