制作一个选项卡切换
1、把选项卡的html页面框架搭建起来
html页面代码
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div> <!--居中的框架开始--> <div class="tab-jz"> <!--选项卡开始--> <div class="tab-x" id="name"> <div class="tab-dj1"> <p> <a href="#">选项1</a> </p> </div> <div class="tab-dj2"> <p> <a href="#">选项2</a> </p> </div> <div class="tab-dj3 active"> <p> <a href="#">选项3</a> </p> </div> <div class="tab-dj4"> <p> <a href="#">选项4</a> </p> </div> </div> <!--选项卡结束--> <!--显示的内容开始--> <div id="nr"> <div> <p>显示的内容1</p> </div> <div> <p>显示的内容2</p> </div> <div style="display: block;"> <p>显示的内容3</p> </div> <div> <p>显示的内容4</p> </div> </div> <!--显示的内容结束--> </div> <!--居中的框架结束--> </div> <link rel="stylesheet" href="css/tab.css" /> <script type="text/javascript" src="js/jquery-1.12.4.js"></script> <script type="text/javascript" src="js/tab.js"></script> </body> </html>
2、给html页面添加css样式
css页面代码
/*清除所有a标签的下划线以及添加黑色字体颜色*/ a { text-decoration: none; color: black; } /*居中的主体*/ .tab-jz { width: 50%; height: 200px; margin: 0 auto; border: 1px solid silver; } /*选项卡的框架样式*/ .tab-x { width: 100%; height: 50px; display: flex; } /*把选项卡分成四份*/ .tab-dj1 { flex: 1; background-color: #C0C0C0; border-right: 1px solid #9D9D9D; border-bottom: 1px solid silver; } .tab-dj2 { flex: 1; background-color: #C0C0C0; border-right: 1px solid #9D9D9D; border-bottom: 1px solid silver; } .tab-dj3 { flex: 1; background-color: #C0C0C0; border-right: 1px solid #9D9D9D; border-bottom: 1px solid silver; } .tab-dj4 { flex: 1; background-color: #C0C0C0; border-bottom: 1px solid silver; } /*字体居中*/ p { text-align: center; } /*把所有内容隐藏*/ #nr div { display: none; } /*改变选项卡的背景色*/ .active { background-color: white; }
3、编写js让选项卡随意切换
js页面代码
$(function() { //获取id为name下的所有div var xx = document.getElementById("name").getElementsByTagName("div"); //获取id为nr下的所有div var nr = document.getElementById("nr").getElementsByTagName("div"); //遍历xx下的所有div for(var i = 0; i < xx.length; i++) { //为xx下的每个div添加index属性 xx[i].index = i; //当你点击第i个选项卡时执行 xx[i].onclick = function() { //再次遍历xx下的所有div for(var i = 0; i < xx.length; i++) { //当点击选项卡后根据下标移除选项卡的active类名(把选项卡的背景色清除) xx[i].classList.remove("active"); //当点击选项卡后根据下标把显示的内容,用内部样式方式隐藏 nr[i].style.display = "none"; } //当点击选项卡后为这个选项卡添加active类名(添加选项卡的背景色) this.classList.add("active"); //当点击选项卡后把这个下标隐藏的内容,用内部样式方式显示 nr[this.index].style.display = "block"; } } });
4、效果图
来源:https://www.cnblogs.com/hyhs/p/12178803.html