原生js实现tab栏切换
时间: 2024-03-12 14:47:16 浏览: 99
原生js实现tab选项卡切换
好的,我可以为您提供一个简单的例子:
HTML:
```html
<div class="tab">
<button class="tablinks" onclick="openTab(event, 'tab1')">Tab 1</button>
<button class="tablinks" onclick="openTab(event, 'tab2')">Tab 2</button>
<button class="tablinks" onclick="openTab(event, 'tab3')">Tab 3</button>
</div>
<div id="tab1" class="tabcontent">
<h3>Tab 1 Content</h3>
<p>Some text...</p>
</div>
<div id="tab2" class="tabcontent">
<h3>Tab 2 Content</h3>
<p>Some text...</p>
</div>
<div id="tab3" class="tabcontent">
<h3>Tab 3 Content</h3>
<p>Some text...</p>
</div>
```
CSS:
```css
/* 隐藏所有tab内容 */
.tabcontent {
display: none;
}
/* 标签页按钮样式 */
.tab button {
background-color: #eee;
border: none;
color: black;
padding: 10px 20px;
cursor: pointer;
}
/* 激活的标签页按钮样式 */
.tab button.active {
background-color: #ccc;
}
/* 标签页内容样式 */
.tabcontent {
padding: 20px;
border: 1px solid #ccc;
}
/* 第一个标签页默认显示 */
#tab1 {
display: block;
}
```
JavaScript:
```javascript
function openTab(event, tabName) {
// 获取所有的 tab 内容
var tabcontent = document.getElementsByClassName("tabcontent");
// 隐藏所有的 tab 内容
for (var i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
// 获取所有的 tab 按钮
var tablinks = document.getElementsByClassName("tablinks");
// 将所有的 tab 按钮样式设置为非激活状态
for (var i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
// 显示当前选中的 tab 内容
document.getElementById(tabName).style.display = "block";
// 设置当前选中的 tab 按钮为激活状态
event.currentTarget.className += " active";
}
```
当用户点击任意一个标签页按钮时,`openTab`函数会被调用,隐藏所有标签页内容,将当前标签页内容设置为显示状态,同时将当前标签页按钮样式设置为激活状态。
阅读全文