html js切换tab,js tab栏切换代码实例解析

今天机试有个内容是做网易云课堂tab栏切换的,如下

7a22dcdbc2b6c4bcd890e6b7a269f6b5.gif

先简单说下我当时的想法

1.先弄一个大div盒子,我命名为tab

2.在大盒子tab里面有两个小盒子,分别是标题栏(tab_list)和内容栏(tab_con)

3.采用display:flex;使标题栏菜单和内容栏的内容水平对齐(可能待会放的代码不是很规范,但实现对齐效果)

4.js编写鼠标移入事件,主要是利用display:none和display:block之间的切换。

下面放下我当时写的代码吧,可能写得不是很正规,不符合习惯,请大家见谅

由于代码太多分几部分说

HTML部分——大致布局,标题栏和内容栏

  • 今日 20:00开抢
  • 明天 10:00开抢
  • 明天 14:00开抢
  • 明天 20:00开抢
  • 后天 10:00
  • 后天 14:00

部分内容区item区域的HTML代码,基本差不多

pic1.png

javascript课程

妙学堂

¥49.9

¥1600

即将开抢

pic1.png

javascript课程

妙学堂

¥49.9

¥1600

即将开抢

pic1.png

javascript课程

妙学堂

¥49.9

¥1600

即将开抢

pic1.png

javascript课程

妙学堂

¥49.9

¥1600

即将开抢

pic1.png

javascript课程

妙学堂

¥49.9

¥1600

即将开抢

CSS部分

.tab{

width: 100%;

height: 300px;

text-align: center;

margin: 10px auto;

background-color: ghostwhite;

}

.tab_list ul{

display: flex;

height: 50px;

margin: 0 auto;

padding: 0;

}

.tab li{

list-style: none;

height: 50px;

line-height: 50px;

flex:auto;

}

.tab_list .active{

background-color: red;

color: #ffffff;

}

.tab_con{

margin: 10px auto;

width: 100%;

height: 200px;

}

.item{

display: none;

}

.box{

display: flex;

}

.product{

flex: auto;

}

.product img{

width: 220px;

height: 120px;

}

.price{

position: relative;

width: 220px;

height: 80px;

}

.price p{

margin: 0px;

left: 0px;

position: absolute;

}

JS部分

var tab_list=document.querySelector('.tab_list');

var lis=tab_list.querySelectorAll('li');

var items=document.querySelectorAll('.item');

for(var i=0;i

lis[i].setAttribute('index',i);

lis[i].οnmοuseοver=function(){

for(var i=0;i

lis[i].className='';

}

this.className='active';

var index=this.getAttribute('index');

console.log(index);

for(var i=0;i

items[i].style.display='none';

}

items[index].style.display='block';

}

}

最终我的效果如下

3ade8332e580b15c784f0c3e36fb8f37.gif

不是很相像,但还算过得去。。。。。。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值