实现JavaScript 原生选项卡
时间: 2023-07-11 10:51:31 浏览: 89
原生js实现选项卡功能
好的,下面是一个简单的JavaScript原生选项卡实现:
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 id="tab1" class="tabcontent">
<h3>Tab 1 Content</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</div>
<div id="tab2" class="tabcontent">
<h3>Tab 2 Content</h3>
<p>Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
</div>
<div id="tab3" class="tabcontent">
<h3>Tab 3 Content</h3>
<p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.</p>
</div>
</div>
```
CSS部分:
```css
.tab {
overflow: hidden;
border: 1px solid #ccc;
background-color: #f1f1f1;
}
.tab button {
background-color: inherit;
float: left;
border: none;
outline: none;
cursor: pointer;
padding: 14px 16px;
transition: 0.3s;
}
.tab button:hover {
background-color: #ddd;
}
.tab button.active {
background-color: #ccc;
}
.tabcontent {
display: none;
padding: 6px 12px;
border: 1px solid #ccc;
border-top: none;
}
```
JavaScript部分:
```javascript
function openTab(evt, tabName) {
var i, tabcontent, tablinks;
tabcontent = document.getElementsByClassName("tabcontent");
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
tablinks = document.getElementsByClassName("tablinks");
for (i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
document.getElementById(tabName).style.display = "block";
evt.currentTarget.className += " active";
}
```
解释:
通过 HTML 中的按钮元素和对应的内容区域,通过 JavaScript 的事件监听实现点击按钮显示对应的内容区域的功能。其中,openTab 函数接收两个参数,分别是事件对象 evt 和对应的选项卡名称 tabName。在函数内部,通过循环遍历所有内容区域和按钮元素,将它们的样式 display 设为 none,将所有按钮元素的类名中的 active 替换为空格。然后再将对应的内容区域样式 display 设为 block,将对应的按钮元素的类名中加上 active 样式,以示当前选中状态。
阅读全文