本文介绍如何使用原生JavaScript实现简单的选项卡切换功能。通过HTML构建结构、CSS美化样式,并利用JS监听点击事件动态切换显示内容。代码包含完整的HTML、CSS及JS实现逻辑,适合初学者学习DOM操作与事件处理。
原生JavaScript实现选项卡切换功能详解
本文分享了一段使用JavaScript实现基础选项卡功能的完整代码,供读者参考学习。
HTML结构搭建
第一步是编写HTML代码,搭建页面的基本骨架结构。
具体HTML结构如下:
<!--导航栏部分HTML代码-->
<nav id="nav">
<ul>
<li class="act">选卡1</li>
<li>选卡2</li>
<li>选卡3</li>
<li>选卡4</li>
</ul>
</nav>
<!--内容部分HTML代码-->
<div id="container">
<section class="tab" style="background-color: tomato">内容1</section>
<section class="tab" style="background-color: cyan">内容2</section>
<section class="tab" style="background-color: blueviolet">内容3</section>
<section class="tab" style="background-color: gold">内容4</section>
</div>
注意:示例中在section标签内直接添加了style属性,这主要是为了演示方便。在实际开发中,为了保持HTML与CSS代码的规范分离,不建议采用这种内联样式写法。
CSS样式美化
接下来,使用CSS代码对页面进行样式美化。
CSS样式代码如下:
*{
text-align: center;
}
nav li{
display: inline;
width: 24%;
text-decoration: none;
padding: 15px;
}
li:hover{
background-color: lightblue;
}
section{
height: 300px;
}
JavaScript交互逻辑
最后,编写JavaScript代码来实现选项卡的交互功能。
JS实现代码如下:
window.onload=function () {
//获取 li 也就是选项卡选项tab
var nav=document.getElementById('nav');
var oNav=nav.getElementsByTagName('li');
//获取 包裹在container里面的section(内容)
var container=document.getElementById('container');
var oDiv=container.getElementsByClassName('tab');
//使用 循环依次得到li
for(var i=0;i<oNav.length;i++){
oNav[i].index=i;
//每一次得到li后执行鼠标点击操作则触发函数function
oNav[i].onclick=function () { //此处除了可以使用onclick,还可以使用onmouseover
//在li的个数内依次展示内容
for(var i=0;i<oNav.length;i++){
oNav[i].className='';
oDiv[i].style.display="none";
}
this.className='act';
oDiv[this.index].style.display="block"
}
for(var m=1;m<oNav.length;m++){
oNav[m].className='';
oDiv[m].style.display="none";
}
}
};
完整代码与效果展示
以上即为利用JavaScript实现简单选项卡的全部步骤。下方提供了完整的可运行代码,直接复制粘贴到编辑器中即可测试运行。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{
text-align: center;
}
nav li{
display: inline;
width: 24%;
text-decoration: none;
padding: 15px;
}
li:hover{
background-color: lightblue;
}
section{
height: 300px;
}
</style>
</head>
<body>
<!--导航栏部分HTML代码-->
<nav id="nav">
<ul>
<li class="act">选卡1</li>
<li>选卡2</li>
<li>选卡3</li>
<li>选卡4</li>
</ul>
</nav>
<!--内容部分HTML代码-->
<div id="container">
<section class="tab" style="background-color: tomato">内容1</section>
<section class="tab" style="background-color: cyan">内容2</section>
<section class="tab" style="background-color: blueviolet">内容3</section>
<section class="tab" style="background-color: gold">内容4</section>
</div>
<script>
window.onload=function () {
var nav=document.getElementById('nav');
var oNav=nav.getElementsByTagName('li');
var container=document.getElementById('container');
var oDiv=container.getElementsByClassName('tab');
for(var i=0;i<oNav.length;i++){
oNav[i].index=i;
oNav[i].onclick=function () {
for(var i=0;i<oNav.length;i++){
oNav[i].className='';
oDiv[i].style.display="none";
}
this.className='act';
oDiv[this.index].style.display="block"
}
for(var m=1;m<oNav.length;m++){
oNav[m].className='';
oDiv[m].style.display="none";
}
}
};
</script>
</body>
</html>
以下是功能运行的效果展示图。




注:网络上也有许多使用jQuery实现选项卡的方法,通常只需寥寥数行代码。待后续深入理解后,有机会再行分享。
如果希望进一步深入学习,可以点击浏览两个相关专题:javascript选项卡操作方法汇总 与 jquery选项卡操作方法汇总。
以上就是本文的全部内容,希望对读者的学习有所帮助,也欢迎大家继续支持本站。