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 相关文章推荐
javascript 学习之旅 (2)
Feb 05 Javascript
使用 JScript 创建 .exe 或 .dll 文件的方法
Jul 13 Javascript
JS获取URL中的参数数据
Dec 05 Javascript
javascript中动态函数用法实例分析
May 14 Javascript
jQuery地图map悬停显示省市代码分享
Aug 20 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
Jan 21 Javascript
原生js实现新闻列表展开/收起全文功能
Jan 20 Javascript
AngularJS实现表格的增删改查(仅限前端)
Jul 04 Javascript
微信小程序嵌入腾讯视频源过程详解
Aug 08 Javascript
解决vuex刷新状态初始化的方法实现
Aug 15 Javascript
微信小程序文章列表功能完整实例
Jun 03 Javascript
js实现自定义滚动条的示例
Oct 27 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
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
一次编写,随处运行
2006/10/09 PHP
生成静态页面的PHP类
2006/11/25 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
浅谈php命令行用法
2015/02/04 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
PHP的PDO连接讲解
2019/01/24 PHP
js、css、img等浏览器缓存问题的2种解决方案
2013/10/23 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
javascript加载xml 并解析各节点的值(实现方法)
2016/10/12 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
node.js操作mysql简单实例
2017/05/25 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
2017/08/18 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
2018/07/27 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
Vue 401配合Vuex防止多次弹框的案例
2020/11/11 Javascript
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
Python中线程编程之threading模块的使用详解
2015/06/23 Python
Python编程中NotImplementedError的使用方法
2018/04/21 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
2019/03/05 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
解决pycharm 安装numpy失败的问题
2019/12/05 Python
解决keras模型保存h5文件提示无此目录问题
2020/07/01 Python
Marriott中国:万豪国际酒店查询预订
2016/09/02 全球购物
数百万免费的图形资源:Freepik
2020/09/21 全球购物
Currentbody德国站:健康与美容技术专家
2020/04/05 全球购物
几道PHP的面试题
2012/05/19 面试题
市政工程技术专业自荐书
2014/07/06 职场文书
演讲比赛主持词
2015/06/29 职场文书
一文搞懂Golang 时间和日期相关函数
2021/12/06 Golang