首页 > 其他分享 >使用js和css实现选项卡切换

使用js和css实现选项卡切换

时间:2023-12-22 09:33:55浏览次数:42  
标签:选项卡 aTab js 1px div border css

HTML

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

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="./css/text.css">
  <link rel="stylesheet" href="./css/tab.css">
  <title>Document</title>
</head>

<body>
  <div class="box">
    <ul>
      <li>选项卡1</li>
      <li>选项卡2</li>
      <li>选项卡3</li>
    </ul>
    <div>选项卡1内容</div>
    <div class="hide">选项卡2内容</div>
    <div class="hide">选项卡3内容</div>
  </div>
</body>
<script src="./js/tab.js"></script>

</html>

js

window.onload = function () { /*window的加载事件处理*/
  var aTab = document.getElementsByTagName("li") /*使用标签名li获取所有选项卡*/
  var content = document.getElementsByClassName("box")[0]; /*使用类名获取最外层的div*/
  var aDiv = content.getElementsByTagName("div"); /*使用父div(最外层div)对象及标签名div获取所有内容div*/
  var len = aTab.length;   /*获取选项卡个数*/
  for (var i = 0; i < len; i++) {   /*循环遍历选项卡,并处理每个选项卡的onmouseover事件*/
    aTab[i].index = i;   /*index是自定义属性,并且属性值等于循环变量值*/
    aTab[i].onmouseover = function () {   /*选项卡的鼠标指针移入事件处理*/
      for (i = 0; i < len; i++) {
        aTab[i].className = '';   /*取消每个选项卡的类名*/
        aDiv[i].className = 'hide';   /*设置每个内容div的类名为hide,隐藏所有内容div*/
      }
      aTab[this.index].className = 'act'; /*设置当前选项卡的类名为act,使之作为选中选项卡*/
      aDiv[this.index].className = ''; /*取消当前选项卡对应内容div的类名,使之显示*/
    };
  }
};

css-tab.css

.box{
  width: 350px;
  margin: 20px auto;
}

.box ul{
  margin: 0;
  padding: 0;
  height: 25px;
  border-left: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  list-style: none;
}

.box ul li{
  float: left;
  width: 90px;
  height: 25px;
  line-height: 25px;
  text-align: center;
  border-right: 1px solid #ccc;
  border-top: 1px solid #ccc;
  background-color: #f5f5f5;
  cursor: pointer;
}

css-text.css

.hide {
  display: none;
}

body,
html {
  font-family: '微软雅黑';
  font-size: 12px;
  line-height: 18px;
}

.box div{
  padding: 20px;
  height: 160px;
  border: 1px solid #ccc;
  border-top: 0px;
}

标签:选项卡,aTab,js,1px,div,border,css
From: https://www.cnblogs.com/mikizero/p/17920577.html

相关文章

  • core-js引起的报错
    从git上获取的代码突然运行不起来,报错提示含有[email protected]:core-js@<3.23.3isnolongermaintainedandnotrecommendedforusageduetothenumberofissues.BecauseoftheV8enginewhims,featuredetectioninoldcore-jsversionscouldcause......
  • knex——nodejs连接数据库
    前言:最近用到了新工具knex——nodejs连接数据库,感觉很不错的库,记录一下使用过程。 一、介绍  二、配置importdotenvfrom'dotenv'dotenv.config()constConfig={client:'pg',connection:process.env.DB_URL,acquireConnectionTimeout:5000,pool:......
  • js中本地存储的三种方式
    1:cookieCookie用于储存不超过4KB的小型文本数据,拥有有效期、安全性、使用范围的属性;用法:安装第三方插件 npminstalljs-cookie按自己开发需求是全局引入还是局部引入,我这里是安全局引入,在main.js入口文件引入;importCookiesfrom'js-cookie'Cookies.set('key', 'value......
  • js逆向-某天下房地产验证码
    声明本文仅供学习参考,如有侵权可私信本人删除,请勿用于其他途径,违者后果自负!如果觉得文章对你有所帮助,可以给博主点击关注和收藏哦!前言目标网站:aHR0cHM6Ly9wYXNzcG9ydC5mYW5nLmNvbS8=``接口:短信验证码登录接口在此特别感谢k哥的文章及本人的指导。【验证码逆向专栏】房某下登......
  • 人民银行js逆向新增参数wzwsinfos
    人民银行js逆向新增参数wzwsinfos1、参数代码varO={    "hostname":'www.pbc.gov.cn',    "scheme":'http',    "verify":verify };//verify是原代码中的d值(变量名会变),类似这样的一长串"307120e6b56965c91a89103d9d1617a1ebacf......
  • css中的定位方式
    css中默认的定位方式为static,如果不是static了,那么就说明这个元素被定位了,定位方式有很多种,简单介绍一下相对定位相对于自己原来的位置进行比较,仍然占据文档流的位置.parent{position:relative;}.child{position:relative;/*默认是static,将其改为relative*/to......
  • vue3 + xlsx 实现 excel 导入web页面解析成json数据
    vue3+xlsx实现excel导入web页面并解析成json数据fileIipt动态创建的标签,一定要用户点击事件触发,不然文件选择框的弹出会被拦截,无法弹出。意思就是下面这段关键代码要用一个事件区触发执行,不能主动执行(比如:vue的钩子)import*asXLSXfrom'xlsx'//v:"^0.18.5"letfil......
  • SheetJs 导出数据
    1.Excel数据导出根据后端数据导出数据源样式list=[  {code:'610230',name:'长尺',num:2,price:3.5,amount:7,type:1,status:2},  {code:'610230',name:'圆规',num:6,price:5,amount:30,type:1,status:1},  ......
  • SheetJs 导入数据
    html<a(click)="import()">导入</a><input#importExcelInput[hidden]="true"type="file"(change)="onFileChange($event)"multiple="false"/>tsimport(){letinput=this.importE......
  • Json.NET Converting between JSON and XML
      Json.NETsupportsconvertingJSONtoXMLandviceversausingthe XmlNodeConverter.Elements,attributes,text,comments,characterdata,processinginstructions,namespaces,andtheXMLdeclarationareallpreservedwhenconvertingbetweenthetwo.......