/*
这是一个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选项卡组件
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 一. Tab选项卡有多种,点击切换,滑过切换,延时切换,自动切换 - 基于JS HTML结构 CSS 点击切换 和...
- 分享下我自己用jquery(也可以换成js原生,只是写法有些许区别)手写的tab选项卡功能的demo主要思想就是给...