首页 > 编程语言 >HTML+CSS+JavaScript实现tab切换栏

HTML+CSS+JavaScript实现tab切换栏

时间:2022-11-14 22:24:57浏览次数:49  
标签:index style JavaScript HTML tabTitle tab var tabBody display


HTML+CSS+JavaScript实现tab栏切换制作

准备部分

HTML部分:切换栏由一个列表组成 每个内容写在分别一个div盒子里

CSS部分:列表:去除序列点,给每个修改样式 ;内容:让整个内容都隐藏起来

JavaScript:获取切换栏元素和类容元素 ;功能:点击不同的任务 出现相应的内容 ,切换任务隐藏之前出现的内容和任务样式,单独出现相应的标题样式和内容

代码部分

第一步实现HTML与CSS的内容

 <div>
   <div>
     <ul class="tabTitle">
       <li>游戏</li>
       <li>音乐</li>
       <li>学习</li>
     </ul>
 ​
   </div>
   <div class="tabBody" >
     <div>游戏内容</div>
     <div>音乐内容</div>
     <div>学习内容</div>
   </div>
 <style>
  .tabTitle li{
     list-style: none;
     background-color: #4CAF50; /* Green */
     color: white;
     padding: 15px 32px;
     text-align: center;
     text-decoration: none;
     display: inline-block;
     font-size: 16px;
 ​
  }
 .tabBody div{
   display: none;
 }
 ​
 </style>

第二步JavaScript部分

 var tabTitle=document.querySelectorAll('li');//获取任务栏的元素
 var tabBody=document.querySelector('.tabBody').querySelectorAll('div');//获取内容元素
 for(var i=0;i<tabTitle.length;i++){//通过for循环使遍历tabTitle这个伪数组,使每个任务都能通过一个注册时间获得相同的功能
   tabTitle[i].setAttribute('index',i);//让每个任务都添加一个自创的属性index,通过index=i来让任务按0-tabTitle.length-1来排列,为后面切换任务出现自己独有的内容做准备
   tabTitle[i].onclick=function (){//给每个任务元素,注册事件(点击事件)
     for(var i=0;i<tabTitle.length;i++){//1.清除在js部分给任一任务添加的背景颜色
       tabTitle[i].style.backgroundColor='';
    }
     this.style.backgroundColor='red';//2.在1的情况下给点击的任务的背景颜色设为red
     var index=this.getAttribute('index')//获取当前点击的任务的index
     for (var i=0;i<tabBody.length;i++){
       tabBody[i].style.display='none';//1.清除在js部分给任一内容的display='block‘,隐藏上一个任务的内容
    }
     tabBody[index].style.display='block';//2.在1的情况下出现点击任务相应的类容
 ​
  }
 ​
 }

整体代码

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Title</title>
   <style>
    .tabTitle li{
       list-style: none;
       background-color: #4CAF50; /* Green */
       color: white;
       padding: 15px 32px;
       text-align: center;
       text-decoration: none;
       display: inline-block;
       font-size: 16px;
 ​
    }
  .tabBody div{
     display: none;
  }
 ​
   </style>
 </head>
 <body>
 ​
 <div>
   <div>
     <ul class="tabTitle">
       <li>游戏</li>
       <li>音乐</li>
       <li>学习</li>
     </ul>
 ​
   </div>
   <div class="tabBody" >
     <div>游戏内容</div>
     <div>音乐内容</div>
     <div>学习内容</div>
   </div>
 </div>
 <script>
   var tabTitle=document.querySelectorAll('li');//获取任务栏的元素
   var tabBody=document.querySelector('.tabBody').querySelectorAll('div');//获取内容元素
   for(var i=0;i<tabTitle.length;i++){//通过for循环使遍历tabTitle这个伪数组,使每个任务都能通过一个注册时间获得相同的功能
     tabTitle[i].setAttribute('index',i);//让每个任务都添加一个自创的属性index,通过index=i来让任务按0-tabTitle.length-1来排列,为后面切换任务出现自己独有的内容做准备
     tabTitle[i].onclick=function (){//给每个任务元素,注册事件(点击事件)
       for(var i=0;i<tabTitle.length;i++){//1.清除在js部分给任一任务添加的背景颜色
         tabTitle[i].style.backgroundColor='';
      }
       this.style.backgroundColor='red';//2.在1的情况下给点击的任务的背景颜色设为red
       var index=this.getAttribute('index')//获取当前点击的任务的index
       for (var i=0;i<tabBody.length;i++){
         tabBody[i].style.display='none';//1.清除在js部分给任一内容的display='block‘,隐藏上一个任务的内容
      }
       tabBody[index].style.display='block';//2.在1的情况下出现点击任务相应的类容
 ​
    }
 ​
  }
 ​
 ​
 </script>
 ​
 ​
 </body>
 </html>

效果图片

 

 

 

 

 

 

标签:index,style,JavaScript,HTML,tabTitle,tab,var,tabBody,display
From: https://www.cnblogs.com/xiaozhiran/p/16890684.html

相关文章

  • javascript实现封装
    //构造函数functionDog(){ this.leg=4; this.bark=function(){ alert("汪汪"); }}//创建一个黑狗varhuzi=newDog();此处我们并没有完成面向对象的......
  • 如何在JavaScript中使用for循环
    前言循环允许我们通过循环数组或对象中的项并做一些事情,比如说打印它们,修改它们,或执行其他类型的任务或动作。JavaScript有各种各样的循环,for循环允许我们对一个集合(如数......
  • JavaScript简介
    什么是JavaScriptJavaScript创建的目的:创建的最初目的是使网页更加生动。脚本这种编程语言写出来的程序被称为脚本,可以直接写在网页的HTML中,网页加载时自动执行。脚本......
  • Objective-C语法之NSDictionary和NSMutableDictionary
    Java有Map,可以把数据以键值对的形式储存起来,取值的时候通过key就可以直接拿到对应的值,方便快捷。在Objective-C语言中,词典就是做这样的事情的,和NSArray一样,一个词典对象也能......
  • Objective-C语法之NSSet和NSMutableSet
    NSSet和NSMutableSet是无序的,但是它保证数据的唯一性。当插入相同的数据时,不会有任何效果。从内部实现来说是hash表,所以可以常数时间内查找一个数据。 1、NSSet的使用[NS......
  • 快速体验 Flink Table Store进阶篇
    在本地安装单机版本,能够实现快速体验FlinkTableStore的目的,本文以Flink1.15.2、flink-table-store-dist-0.2.1、flink-shaded-hadoop-2-uber-2.8.3-10.0和Kafka3.......
  • DOC,PDF,PPT文件转换为HTML代码记录
    pom文件引入<repositories> <repository> <id>com.e-iceblue</id> <url>http://repo.e-iceblue.cn/repository/maven-public/</url> </repository></repositories>......
  • IEEE-754浮点数标准与JavaScript中的number
    1、概述如何使用8个字节表示特定的数字(整数或小数),其中要满足精度足够高,和表示的数字尽可能的大。聪明的你肯定想到使用科学计数法来表示,其中64位中,需要包含确定正负的符号......
  • kali-linux tab
    ln-sfbash/bin/sh查看一下我们的文件是否修改成功,成功的话是bash而不是dashls-l/bin/shapt-getinstallbash-completion重启wslwsl--shutdownwsl......
  • How I can obtain the collation of a specific table in a database?
    HowIcanobtainthecollationofaspecifictableinadatabase? 回答1Collationatthetablelevelisonapercolumnbasis,soitispossibletohavea......