/*
這是一個tab選項卡的js,
html代碼樣式如下:
<ul class="tabs">
<li class="tab">one</li>
<li class="tab">two</li>
<li class="tab">three</li>
</ul>
<div class="tabs-content">
<div class="tab-item">1</div>
<div class="tab-item">2</div>
<div class="tab-item">3</div>
</div>
css代碼樣式如下:
.tab-item {
display: none;
}
.tab-item.active {
display: block;
}
*/
(function () {
let tabs = document.getElementsByClassName('tabs');
let contents = document.getElementsByClassName('tabs-content');
let lens = tabs.length;
if (lens >= 1) {
let i;
for (i = 0; i <= lens - 1; i++) {
let tab = tabs[i];
let content = contents[i];
bindClick(tab, content);
initTab(tab, content);
}
}
function bindClick(tab, content) {
tab.addEventListener('click', function (e) {
let event = e || window.event;
let target = event.target || event.srcElement;
if (target.nodeName.toLocaleLowerCase() == 'li') {
tabToggle(target, tab, content);
}
})
}
function tabToggle(target, tab, content) {
let index, i;
let tabsList = tab.children;
let contentsList = content.children;
for (i = 0; i <= tabsList.length - 1; i++) {
if (target === tabsList[i]) {
index = i;
}
let menu = tabsList[i];
let panel = contentsList[i];
menu.className = menu.className.replace(' active', '');
panel.className = panel.className.replace(' active', '');
}
tabsList[index].className += ' active';
contentsList[index].className += ' active';
}
function initTab(tab, content) {
let tabsList = tab.children;
let contentsList = content.children;
tabsList[0].className += ' active';
contentsList[0].className += ' active';
}
})()
Js原生的Tab選項卡組件
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關閱讀更多精彩內容
- 一. Tab選項卡有多種,點擊切換,滑過切換,延時切換,自動切換 - 基于JS HTML結構 CSS 點擊切換 和...
- 分享下我自己用jquery(也可以換成js原生,只是寫法有些許區(qū)別)手寫的tab選項卡功能的demo主要思想就是給...