<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
*{
margin: 0;
padding: 0;
}
ul{
list-style: none;
}
.box{
width: 350px;
height: 300px;
border: 1px solid #ccc;
margin: 100px auto;
overflow: hidden;
}
.mt span{
display: inline-block;
width: 80px;
height: 30px;
background-color: pink;
line-height: 30px;
cursor: pointer;
}
.mt span.current{
background-color: purple;
}
.mb li{
width: 100%;
height: 270px;
background-color: purple;
display: none;
}
.mb li.show{
display: none;
}
</style>
<script>
window.onload = function () {
//要想多个盒子不互相影响,可以通过id给他们分开
//封装tab栏切换函数
function tab(obj){
var target = document.getElementById(obj);
var spans = target.getElementsByTagName("span");
var lis = target.getElementsByTagName("li");
for(var i=0;i<spans.length;i++){
// spans[i].index= i;
var timer = null;
spans[i].onmouseover = function (num){
return function () {
clearTimeout(timer);
timer = setTimeout(function(){
for(var j =0;j<spans.length;j++){
spans[j].className = "";
lis[j].className = "";
}
spans[num].className = "current";
lis[num].className = "show";
},300);
}
}(i);
spans[i].onmouseout = function () {
clearTimeout(timer);
}
}
}
tab("one");
tab("two");
tab("three");
}
</script>
</head>
<body>
<div class="box" id="one">
<div class="mt">
<span class="current">新闻</span>
<span>体育</span>
<span>娱乐</span>
<span>八卦</span>
</div>
<div class="mb">
<ul>
<li>新闻模块</li>
<li>体育模块</li>
<li>娱乐模块</li>
<li>八卦模块</li>
</ul>
</div>
</div>
</body>
</html>
tx6-多个tab栏切换闭包版
最新推荐文章于 2024-07-05 16:14:04 发布
本文介绍了一种使用闭包技术来实现多个tab栏切换的解决方案,详细讲解了闭包在该场景下的应用和优势。
摘要由CSDN通过智能技术生成