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  Error 对象 错误处理
May 18 Javascript
Javascript中Eval函数的使用
Mar 23 Javascript
通过Javascript创建一个选择文件的对话框代码
Jun 16 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
Jan 24 Javascript
js操作checkbox遇到的问题解决
Jun 29 Javascript
js实现文字超出部分用省略号代替实例代码
Sep 01 Javascript
JS中实现函数return多个返回值的实例
Feb 21 Javascript
基于ES6作用域和解构赋值详解
Nov 03 Javascript
10分钟上手vue-cli 3.0 入门介绍
Apr 04 Javascript
JS 数组随机洗牌的实例代码
Sep 12 Javascript
JavaScript指定断点操作实例教程
Sep 18 Javascript
React组件设计模式之组合组件应用实例分析
Apr 29 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
关于文本留言本的分页代码
2006/10/09 PHP
PHP 第二节 数据类型之转换
2012/04/28 PHP
二进制交叉权限微型php类分享
2014/02/07 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
php递归函数怎么用才有效
2018/02/24 PHP
PHP的JSON封装、转变及输出操作示例
2019/09/27 PHP
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
2013/07/03 Javascript
jquery 构造函数在表单提交过程中修改数据
2015/05/25 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
js仿微信语音播放实现思路
2016/12/12 Javascript
微信小程序 本地数据存储实例详解
2017/04/13 Javascript
vue拦截器Vue.http.interceptors.push使用详解
2017/04/22 Javascript
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
vue项目总结之文件夹结构配置详解
2017/12/13 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
2018/07/10 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
vue过滤器用法实例分析
2019/03/15 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
vue data对象重新赋值无效(未更改)的解决方式
2020/07/24 Javascript
vue路由结构可设一层方便动态添加路由操作
2020/08/31 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
Python实现求最大公约数及判断素数的方法
2015/05/26 Python
python游戏开发之视频转彩色字符动画
2019/04/26 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
Django调用百度AI接口实现人脸注册登录代码实例
2020/04/23 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
Python中Selenium模块的使用详解
2020/10/09 Python
HTML5等待加载动画效果
2017/07/27 HTML / CSS
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
2015年公司后勤管理工作总结
2015/05/13 职场文书
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android