选项卡的整体思路:做复杂的效果,往往都得在脑子里先把思路整理出来。
1、 html代码结构


注:属性无所谓,只要你点击按钮时能够查出对应的内容元素就好。
2、 css的问题


3、 javaScript部分


技术点总结:这个效果最基本的就是找出点击元素所代表的内容,简单就简单在合理运用css后在js中设置几个值效果基本就实现了;两个函数封装都是重置内容和点击按钮的样式只不过点击按钮是用了on这个类进行代替,内容元素也可以跟点击按钮一样使用类代替。
源代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>导航栏</title>
<style>
.div1 {
background-color: red;
}
.div2 {
background-color: blue;
}
.div3 {
background-color: green;
}
.nav_button {
margin: 20px;
}
.nav_button>a {
background-color: rgb(109, 109, 109);
color: white;
padding: 12px 30px;
text-decoration: none;
transition: all .3s;
}
.nav_button>a:hover,
.nav_button>a.on {
background-color: rgb(255, 138, 28);
}
.nav_table {
position: relative;
}
.navDiv {
position: absolute;
width: 200px;
height: 200px;
transition: all .3s;
}
</style>
</head>
<body>
<!-- 导航栏 —— 网页渲染内容 -->
<div class="content">
<!-- 导航按钮 -->
<div class="nav_button">
<a href="javascript:;" class="btn-one on" navContDiv="nav-one">按钮一</a>
<a href="javascript:;" class="btn-two" navContDiv="nav-tow">按钮二</a>
<a href="javascript:;" class="btn-three" navContDiv="nav-three">按钮三</a>
</div>
<!-- 内容区 -->
<div class="nav_table">
<!-- 1 -->
<div class="div1 navDiv" id="nav-one" style="visibility: visible;"></div>
<!-- 2 -->
<div class="div2 navDiv" id="nav-tow" style="visibility: hidden;"></div>
<!-- 3 -->
<div class="div3 navDiv" id="nav-three" style="visibility: hidden;"></div>
</div>
</div>
<!-- 导航栏 —— 网页渲染内容 -->
<script src="./jquery-3.2.1.min.js"></script><!-- 引入jQuery库 -->
<!-- 实际js代码编写的区域 -->
<script>
$(function () {
var btn
$(".nav_button>a[navContDiv]").click(function (e) {
// 按钮点击
btn = e.target;
rest_on($(".nav_button>a[navContDiv]"))
$(btn).addClass("on")
// 切换内容
rest_content($(".nav_table>.navDiv"))
$("#"+$(btn).attr("navContDiv")+"").css({
"visibility":"visible",
"opacity": "1"
})
})
// 重置按钮"on"
function rest_on(button) {
for (var i = 0; i < button.length; i++) {
$(button[i]).removeClass("on")
}
}
// 重置内容的透明度
function rest_content(cont) {
for (var i = 0; i < cont.length; i++) {
$(cont[i]).css({
"visibility":"hidden",
"opacity": "0"
})
}
}
})
</script>
</body>
</html>