制作选项卡问题:
1.背景色默认透明(有时候会误以为是白色),只有设置了背景色,才能遮盖下方选项内容的边框。
2.继续了解匿名函数自调用。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>js原生选项卡切换</title>
<style type="text/css">
body{
background-color: grey;
}
#tabBox{
width: 500px;
height: 300px;
background-color: #ffffff;
margin: 0 auto;
}
ul#tabControl{
padding: 0;
width: 360px;
margin:0 auto;
font-size: 0;
position: relative;
/*background-color: #ffffff;//必须设置背景色,否则默认透明!!!*/
}
ul#tabControl li{
display: inline-block;
margin-top: 10px;
width: 100px;
height: 40px;
line-height: 40px;
font-size: 16px;
box-sizing: border-box;
list-style: none;
border: 1px solid #5c736af5;
/*border-top: 2px solid #db4b4b;点击的时候再去设置*/
border-bottom: 0px;
text-align: center;
}
ul#tabControl li:nth-child(2){
margin-left: 30px;
margin-right: 30px;
}
ul#tabContent{
width: 370px;
height: 200px;
margin:0 auto;
border: 1px solid #5c736af5;
border-top: 2px solid #db4b4b;
box-sizing: border-box;
list-style: none;
margin-top: -3px;
}
</style>
</head>
<body>
<div id="tabBox">
<ul id="tabControl">
<li>房产</li>
<li>家居</li>
<li>二手房</li>
</ul>
<ul id="tabContent">
<li>
275万购昌平邻铁三居 总价20万买一居<br/>
200万内购五环三居 140万安家东三环<br/>
北京首现零首付楼盘 53万购东5环50平<br/>
京楼盘直降5000 中信府 公园楼王现房<br/>
</li>
<li style="display: none;">
40平出租屋大改造 美少女的混搭小窝<br/>
经典清新简欧爱家 90平老房焕发新生<br/>
新中式的酷色温情 66平撞色活泼家居<br/>
瓷砖就像选好老婆 卫生间烟道的设计<br/>
</li>
<li style="display: none;">
通州豪华3居260万 二环稀缺2居250w甩<br/>
西3环通透2居290万 130万2居限量抢购<br/>
黄城根小学学区仅260万 121平70万抛!<br/>
独家别墅280万 苏州桥2居优惠价248万<br/>
</li>
</ul>
</div>
<script type="text/javascript">
window.onload=function(){
var ul1=document.getElementById('tabControl');//选项卡ul
var ul2=document.getElementById('tabContent');//选项内容ul
var li1=ul1.children;//选项卡li
var li2=ul2.children;//选项内容li
for(i=0;i<li1.length;i++){
(function(i){
li1[i].onclick=function(){
for(j=0;j<li1.length;j++){
li1[j].style.borderTop="1px solid #5c736af5";
li1[j].style.backgroundColor="transparent";
li2[j].style.display="none";
}
li1[i].style.borderTop="2px solid #db4b4b";
li1[i].style.backgroundColor="#ffffff";
li2[i].style.display="block";
}
})(i);
}
}
</script>
</body>
</html>