paraofheaven
2015-09-30 13:13
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>实践题 - 选项卡</title>
<style type="text/css">
/* CSS样式制作 */
*{
margin:0;
padding:0;
box-sizing: border-box
}
body{
width:100%;
height:100%;
}
.con{
width:100%;
height:100%;
margin:10px auto;
}
.houseInfo{
border:1px solid #ccc;
border-bottom:2px solid red;
font-size:16px;
font-family:"黑体";
display:inline-block;
line-height:30px;
padding:0 20px;
border-radius:2px;
}
ul{
margin-top:-2px;
min-height:110px;
padding-top:10px;
border:1px solid blue;
border-top:2px solid red;
}
li{
padding-left:5px;
list-style:none;
line-height:20px;
font-size:12px;
font-weight:bold;
font-family:"微软雅黑";
}
.tabOn{
border-top:2px solid red;
border-bottom:2px solid #fff;
}
</style>
</head>
<body>
<!-- HTML页面布局 -->
<div>
<h4 class="houseInfo tabOn">房产</h4>
<h4>家居</h4>
<h4>二手房</h4>
<ul id="info1">
<li>275万购昌平邻铁三居 总价20万买一居</li>
<li>200万内购五环三居 140万安家东三环</li>
<li>北京首现零首付楼盘 53万购东5环50平</li>
<li>京楼盘直降5000 中信府 公园楼王现房</li>
</ul>
<ul id="info2">
<li>40平出租屋大改造 美少女的混搭小窝</li>
<li>经典清新简欧爱家 90平老房焕发新生</li>
<li>新中式的酷色温情 66平撞色活泼家居</li>
<li>瓷砖就像选好老婆 卫生间烟道的设计</li>
</ul>
<ul id="info3">
<li>通州豪华3居260万 二环稀缺2居250w甩</li>
<li>西3环通透2居290万 130万2居限量抢购</li>
<li>黄城根小学学区仅260万 121平70万抛!</li>
<li>独家别墅280万 苏州桥2居优惠价248万</li>
</ul>
</div>
<script type="text/javascript">
// JS实现选项卡切换
window.onload = function(){
console.log(111);
var houseInfo=document.getElementsByClassName("houseInfo");
for(var i=0;i<houseInfo.length;i++){
var houseInfo[i].index=i;
this.onclick=function(){
this.className("houseInfo tabOn");
var info=document.getElementsById("info"+(this.index+1));
info.style.display="block";
var houother=sibling(houseInfo[i]);
for(var j=0;j<houother.length;j++){
houother[j].className("houseInfo");
}
var infother=sibling(info);
for(var j=0;j<infother.length;j++){
infother[j].style.display="none";
}
})
}
}
function sibling(elem) {
var r = [];
var n = elem.parentNode.firstChild;
for ( ; n; n = n.nextSibling ) {
if ( n.nodeType === 1 && n !== elem ) {
r.push( n );
}
}
return r;
}
</script>
</body>
</html>
我的意思是可以实现多个选项卡的切换,多谢你的回答~
问题很多,样式是块级元素与行级元素理解不清。js不仅语法上存在错误,而且逻辑上可能你想多了,因此直接重写代码如下,你看自己能否看懂。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>实践题 - 选项卡</title> <style type="text/css"> /* CSS样式制作 */ *{ margin:0; padding:0; box-sizing: border-box } body{ width:100%; height:100%; } .con{ width:100%; height:100%; margin:10px auto; } /*.houseInfo{ 改样式*/ h4{ border:1px solid #ccc; border-bottom:2px solid red; font-size:16px; font-family:"黑体"; display:inline-block; line-height:30px; padding:0 20px; border-radius:2px; } ul{ margin-top:-2px; min-height:110px; padding-top:10px; border:1px solid red; /*改blue为red */ border-top:2px solid red; width: 250px; /*给宽度*/ } li{ padding-left:5px; list-style:none; line-height:20px; font-size:12px; font-weight:bold; font-family:"微软雅黑"; } .tabOn{ border-top:2px solid red; border-bottom:2px solid #fff; } /*增加辅助类*/ .show{display: block;} .hide{display: none;} </style> </head> <body> <!-- HTML页面布局 --> <div> <h4 class="tabOn">房产</h4> <h4>家居</h4> <h4>二手房</h4> <ul id="info1"> <li>275万购昌平邻铁三居 总价20万买一居</li> <li>200万内购五环三居 140万安家东三环</li> <li>北京首现零首付楼盘 53万购东5环50平</li> <li>京楼盘直降5000 中信府 公园楼王现房</li> </ul> <ul id="info2" class="hide"> <li>40平出租屋大改造 美少女的混搭小窝</li> <li>经典清新简欧爱家 90平老房焕发新生</li> <li>新中式的酷色温情 66平撞色活泼家居</li> <li>瓷砖就像选好老婆 卫生间烟道的设计</li> </ul> <ul id="info3" class="hide"> <li>通州豪华3居260万 二环稀缺2居250w甩</li> <li>西3环通透2居290万 130万2居限量抢购</li> <li>黄城根小学学区仅260万 121平70万抛!</li> <li>独家别墅280万 苏州桥2居优惠价248万</li> </ul> </div> <script type="text/javascript"> // JS实现选项卡切换 window.onload = function(){ // console.log(111); var oH=document.getElementsByTagName("h4"); var oU=document.getElementsByTagName("ul"); for(var i=0;i<oH.length;i++){ oH[i].index = i; oH[i].onclick = function(){ for(var j=0;j<oH.length;j++){ oH[j].className=''; oU[j].className='hide'; } this.className = 'tabOn'; oU[this.index].className = 'show'; } } } </script> </body> </html>
JavaScript进阶篇
468789 学习 · 22582 问题
相似问题