js tab欄切換代碼實(shí)例解析
今天機(jī)試有個內(nèi)容是做網(wǎng)易云課堂tab欄切換的,如下

先簡單說下我當(dāng)時的想法
1.先弄一個大div盒子,我命名為tab
2.在大盒子tab里面有兩個小盒子,分別是標(biāo)題欄(tab_list)和內(nèi)容欄(tab_con)
3.采用display:flex;使標(biāo)題欄菜單和內(nèi)容欄的內(nèi)容水平對齊(可能待會放的代碼不是很規(guī)范,但實(shí)現(xiàn)對齊效果)
4.js編寫鼠標(biāo)移入事件,主要是利用display:none和display:block之間的切換。
下面放下我當(dāng)時寫的代碼吧,可能寫得不是很正規(guī),不符合習(xí)慣,請大家見諒
由于代碼太多分幾部分說
HTML部分——大致布局,標(biāo)題欄和內(nèi)容欄
<div class="tab">
<div class="tab_list">
<ul>
<li class="active" >今日 20:00開搶</li>
<li>明天 10:00開搶</li>
<li>明天 14:00開搶</li>
<li>明天 20:00開搶</li>
<li>后天 10:00</li>
<li>后天 14:00</li>
</ul>
</div>
<div class="tab_con">
<div class="item" style="display: block">
</div>
<div class="item">
</div>
<div class="item">
</div>
<div class="item">
</div>
<div class="item">
</div>
<div class="item">
</div>
</div>
</div>
部分內(nèi)容區(qū)item區(qū)域的HTML代碼,基本差不多
<div class="item" style="display: block">
<div class="box">
<div class="product">
<a><img src="img/pic1.png"/></a>
<div class="price" >
<h3>javascript課程</h3>
<h5>妙學(xué)堂</h5>
<p>
<span style="color: red;font-size: 16px;">¥49.9</span>
<span style="text-decoration:line-through ;font-size: 10px;">¥1600</span>
<span style="border: 3px gainsboro dashed;margin-left: 55px;font-size: 16px;">即將開搶</span>
</p>
</div>
</div>
<div class="product">
<a><img src="img/pic1.png"/></a>
<div class="price" >
<h3>javascript課程</h3>
<h5>妙學(xué)堂</h5>
<p>
<span style="color: red;font-size: 16px;">¥49.9</span>
<span style="text-decoration:line-through ;font-size: 10px;">¥1600</span>
<span style="border: 3px gainsboro dashed;margin-left: 55px;font-size: 16px;">即將開搶</span>
</p>
</div>
</div>
<div class="product">
<a><img src="img/pic1.png"/></a>
<div class="price" >
<h3>javascript課程</h3>
<h5>妙學(xué)堂</h5>
<p>
<span style="color: red;font-size: 16px;">¥49.9</span>
<span style="text-decoration:line-through ;font-size: 10px;">¥1600</span>
<span style="border: 3px gainsboro dashed;margin-left: 55px;font-size: 16px;">即將開搶</span>
</p>
</div>
</div>
<div class="product">
<a><img src="img/pic1.png"/></a>
<div class="price" >
<h3>javascript課程</h3>
<h5>妙學(xué)堂</h5>
<p>
<span style="color: red;font-size: 16px;">¥49.9</span>
<span style="text-decoration:line-through ;font-size: 10px;">¥1600</span>
<span style="border: 3px gainsboro dashed;margin-left: 55px;font-size: 16px;">即將開搶</span>
</p>
</div>
</div>
<div class="product">
<a><img src="img/pic1.png"/></a>
<div class="price" >
<h3>javascript課程</h3>
<h5>妙學(xué)堂</h5>
<p>
<span style="color: red;font-size: 16px;">¥49.9</span>
<span style="text-decoration:line-through ;font-size: 10px;">¥1600</span>
<span style="border: 3px gainsboro dashed;margin-left: 55px;font-size: 16px;">即將開搶</span>
</p>
</div>
</div>
</div>
</div>
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部分
<script>
var tab_list=document.querySelector('.tab_list');
var lis=tab_list.querySelectorAll('li');
var items=document.querySelectorAll('.item');
for(var i=0;i<lis.length;i++){
lis[i].setAttribute('index',i);
lis[i].onmouseover=function(){
for(var i=0;i<lis.length;i++){
lis[i].className='';
}
this.className='active';
var index=this.getAttribute('index');
console.log(index);
for(var i=0;i<items.length;i++){
items[i].style.display='none';
}
items[index].style.display='block';
}
}
</script>
最終我的效果如下

不是很相像,但還算過得去。。。。。。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
ES6 Set結(jié)構(gòu)的應(yīng)用實(shí)例分析
這篇文章主要介紹了ES6 Set結(jié)構(gòu)的應(yīng)用,結(jié)合實(shí)例形式分析了ES6 set結(jié)構(gòu)的功能、特點(diǎn)、常見用法及相關(guān)操作注意事項,需要的朋友可以參考下2019-06-06
JS組件Bootstrap Table表格行拖拽效果實(shí)現(xiàn)代碼
這篇文章分享了JS組件Bootstrap Table表格行拖拽效果實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2015-12-12
使用?Angular?服務(wù)器端渲染?Transfer?State?Service
這篇文章主要介紹了使用?Angular?服務(wù)器端渲染?Transfer?State?Service,假設(shè)我們使用?Angular?Universal?開發(fā)一個服務(wù)器端渲染的?Angular?應(yīng)用,這個應(yīng)用會消費(fèi)一個第三方的?Restful?API2022-06-06
thinkjs微信中控之微信鑒權(quán)登陸的實(shí)現(xiàn)代碼
這篇文章主要介紹了thinkjs微信中控之微信鑒權(quán)登陸的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
深入探究JavaScript的類型判斷(從基礎(chǔ)到精通)
JavaScript 語言具有多種數(shù)據(jù)類型,它們可以大致分為兩大類:基本數(shù)據(jù)類型(Primitive Data Types)和引用數(shù)據(jù)類型(Reference Data Types),本文將帶大家一起從基礎(chǔ)到精通深入探究JavaScript的類型判斷,需要的朋友可以參考下2024-05-05

