個人作業(yè),內(nèi)附詳細注釋,可供參考
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>實踐題 - 選項卡</title>
<style type="text/css">
/* CSS樣式制作 */
</style>
<script type="text/javascript">
// 頁面加載完畢后執(zhí)行,如果放在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';
}
// 點擊時將所有切換卡狀態(tài)重置,即去掉li選中的樣式,隱藏切換卡內(nèi)容
oLis[i].onclick = function() {
for(var j=0;j<len;j++){
oLis[j].className='';
oDivs[j].className='';
oDivs[j].setAttribute('display','none');
}
// 將被選中的li 及對應(yīng)點選項卡添加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,后來發(fā)現(xiàn)各行間距不一致,原因是元素高度不會被合并,
所以調(diào)整為margin,因為當兩個垂直外邊距相遇時,它們將形成一個外邊距,這樣美觀性大大提高。*/
#content div p {
margin: 10px 0;
}
</style>
</head>
<body>
<!-- HTML頁面布局 -->
<div id="nav">
<ul>
<li class="checked">房產(chǎn)</li>
<li>家具</li>
<li>二手房</li>
</ul>
</div>
<div id="content">
<div class="show">
<p>275萬購昌平鄰鐵三居 總價20萬買一居</p>
<p>200萬內(nèi)購五環(huán)三居 140萬安家東三環(huán)</p>
<p>北京首現(xiàn)零首付樓盤 53萬購東5環(huán)50平</p>
<p>京樓盤直降5000 中信府 公園樓王現(xiàn)房</p>
</div>
<div>
<p>40平出租屋大改造 美少女的混搭小窩</p>
<p>經(jīng)典清新簡歐愛家 90平老房煥發(fā)新生</p>
<p>新中式的酷色溫情 66平撞色活潑家居</p>
<p>瓷磚就像選好老婆 衛(wèi)生間煙道的設(shè)計</p>
</div>
<div>
<p>通州豪華3居260萬 二環(huán)稀缺2居250w甩</p>
<p>西3環(huán)通透2居290萬 130萬2居限量搶購</p>
<p>黃城根小學學區(qū)僅260萬 121平70萬拋!</p>
<p>獨家別墅280萬 蘇州橋2居優(yōu)惠價248萬</p>
</div>
</div>
</body>
</html>
2021-02-02
可以麻煩說明一下this.index的作用嗎,謝謝!