为了账号安全,请及时绑定邮箱和手机立即绑定

个人作业,内附详细注释,可供参考

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>实践题 - 选项卡</title>

<style type="text/css">

/* CSS样式制作 */

</style>

<script type="text/javascript">

// 页面加载完毕后执行,如果放在body最后可不用window.onload

window.onload = function() {

// 通过id或元素名称的方式获取选项卡组件

var oNav = document.getElementById('nav');

var oLis = oNav.getElementsByTagName('li');

var oCont = document.getElementById('content');

var oDivs = oCont.getElementsByTagName('div');

var len =oLis.length;

// 给所有的li添加 onmousemove 和 onclic 事件

for (var i = 0; i < len; i++) {

oLis[i].index = i;

//鼠标滑过时,仅为当前鼠标所在li添加checked样式

oLis[i].onmousemove =function(){

for(var j=0;j<len;j++){

oLis[j].className='';

}

oLis[this.index].className = 'checked';

}

// 点击时将所有切换卡状态重置,即去掉li选中的样式,隐藏切换卡内容

oLis[i].onclick = function() {

for(var j=0;j<len;j++){

oLis[j].className='';

oDivs[j].className='';

oDivs[j].setAttribute('display','none');

}

// 将被选中的li 及对应点选项卡添加class样式

oLis[this.index].className = 'checked';

oDivs[this.index].className = 'show';

}

}

}

</script>

<style type="text/css">

* {

margin: 0;

padding: 0;

}


body {

padding-left: 5px;

}


#nav {

width: 400px;

height: 30px;

line-height: 30px;

text-align: center;

font: "微软雅黑";

}


#nav ul li {

width: 65px;

border-left: #B5BDB7 solid 0.5px;

border-right: #B5BDB7 solid 0.5px;

border-top: #B5BDB7 solid 0.5px;

margin: 0 3px;

float: left;

list-style: none;

cursor: pointer;

}


#nav ul li.checked {

border-top: #8B4412 solid 1px;

border-bottom: #fff solid 1px;

}


#content {

width: 500px;

margin-top: 1px;

}


#content div {

width: 100%;

height: 155px;

border-top: #8B4412 solid 1px;

border-left: #4E7BA5 solid 1px;

border-right: #4E7BA5 solid 1px;

border-bottom: #4E7BA5 solid 1px;

padding-left: 5px;

display: none;

}


#content div.show {

display: block;

}

/*这里起初用的是line-height和height,后来发现各行间距不一致,原因是元素高度不会被合并,

所以调整为margin,因为当两个垂直外边距相遇时,它们将形成一个外边距,这样美观性大大提高。*/

#content div p {

margin: 10px 0;

}

</style>

</head>

<body>

<!-- HTML页面布局 -->

<div id="nav">

<ul>

<li class="checked">房产</li>

<li>家具</li>

<li>二手房</li>

</ul>

</div>

<div id="content">

<div class="show">

<p>275万购昌平邻铁三居 总价20万买一居</p>

<p>200万内购五环三居 140万安家东三环</p>

<p>北京首现零首付楼盘 53万购东5环50平</p>

<p>京楼盘直降5000 中信府 公园楼王现房</p>

</div>

<div>

<p>40平出租屋大改造 美少女的混搭小窝</p>

<p>经典清新简欧爱家 90平老房焕发新生</p>

<p>新中式的酷色温情 66平撞色活泼家居</p>

<p>瓷砖就像选好老婆 卫生间烟道的设计</p>

</div>

<div>

<p>通州豪华3居260万 二环稀缺2居250w甩</p>

<p>西3环通透2居290万 130万2居限量抢购</p>

<p>黄城根小学学区仅260万 121平70万抛!</p>

<p>独家别墅280万 苏州桥2居优惠价248万</p>

</div>

</div>

</body>

</html>


正在回答

1 回答

可以麻烦说明一下this.index的作用吗,谢谢!

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468194    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

个人作业,内附详细注释,可供参考

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信