推薦三種簡(jiǎn)潔的Tab導(dǎo)航(網(wǎng)頁(yè)選項(xiàng)卡)簡(jiǎn)析
更新時(shí)間:2007年05月20日 00:00:00 作者:
在網(wǎng)頁(yè)中應(yīng)用選項(xiàng)卡可以使網(wǎng)頁(yè)顯得更緊湊,結(jié)合AJAX技術(shù)可以使頁(yè)面在有限的空間內(nèi)展現(xiàn)更多的內(nèi)容。本文主要介紹幾種簡(jiǎn)潔的選項(xiàng)卡效果的實(shí)現(xiàn)(不涉及滑動(dòng)門(mén)和AJAX),附有實(shí)例,無(wú)圖片,兼容性較好,方便大家直接使用。
第一種形式: 通過(guò)更換顯示樣式實(shí)現(xiàn),這種很常見(jiàn),就不多說(shuō)了。
<div id="tabs0">
<ul class="menu0" id="menu0">
<li onclick="setTab(0,0)" class="hover">新聞</li>
<li onclick="setTab(0,1)">評(píng)論</li>
<li onclick="setTab(0,2)">技術(shù)</li>
<li onclick="setTab(0,3)">點(diǎn)評(píng)</li>
</ul>
<div class="main" id="main0">
<ul class="block"><li>新聞列表</li></ul>
<ul><li>評(píng)論列表</li></ul>
<ul><li>技術(shù)列表</li></ul>
<ul><li>點(diǎn)評(píng)列表</li></ul>
</div>
</div>
第二種形式: 這種結(jié)構(gòu)比較復(fù)雜一些,外面加一個(gè)相對(duì)層(.menu1box),設(shè)置溢出隱藏,將選項(xiàng)卡(#menu1)設(shè)為絕對(duì)定位,設(shè)置層指針為1(z-index:1;),以便可以遮住下主區(qū)塊(.main1box)1px的高度。設(shè)置主區(qū)塊的邊框?yàn)?px的黑邊,上空白(margin-top)為-1px,使上邊框伸到選項(xiàng)卡下。當(dāng)改變選項(xiàng)卡某項(xiàng)(li)的背景為白色時(shí)便可遮住一部分主區(qū)塊的上邊框。這樣效果就實(shí)現(xiàn)了。
<div id="tabs1">
<div class="menu1box">
<ul id="menu1">
<li class="hover" onmouseover="setTab(1,0)"><a href="#">新聞</a></li>
<li onmouseover="setTab(1,1)"><a href="#">評(píng)論</a></li>
<li onmouseover="setTab(1,2)"><a href="#">技術(shù)</a></li>
<li onmouseover="setTab(1,3)"><a href="#">點(diǎn)評(píng)</a></li>
</ul>
</div>
<div class="main1box">
<div class="main" id="main1">
<ul class="block"><li>新聞列表</li></ul>
<ul><li>評(píng)論列表</li></ul>
<ul><li>技術(shù)列表</li></ul>
<ul><li>點(diǎn)評(píng)列表</li></ul>
</div>
</div>
</div>
第一、二種形式的JS代碼:
function setTab(m,n){
var tli=document.getElementById("menu"+m).getElementsByTagName("li"); /*獲取選項(xiàng)卡的LI對(duì)象*/
var mli=document.getElementById("main"+m).getElementsByTagName("ul"); /*獲取主顯示區(qū)域?qū)ο?/
for(i=0;i<tli.length;i++){
tli[i].className=i==n?"hover":""; /*更改選項(xiàng)卡的LI對(duì)象的樣式,如果是選定的項(xiàng)則使用.hover樣式*/
mli[i].style.display=i==n?"block":"none"; /*確定主區(qū)域顯示哪一個(gè)對(duì)象*/
}
}
第三種形式: 這也是一種不常用的方式,加一個(gè)相對(duì)層(.menu2box),利用一個(gè)背景層(#tip2)定位,通過(guò)改變層的左距離(left)實(shí)現(xiàn)效果。
<div id="tabs2">
<div class="menu2box">
<div id="tip2"></div>
<ul id="menu2">
<li class="hover" onmouseover="nowtab(2,0)"><a href="#">新聞</a></li>
<li onmouseover="nowtab(2,1)"><a href="#">評(píng)論</a></li>
<li onmouseover="nowtab(2,2)"><a href="#">技術(shù)</a></li>
<li onmouseover="nowtab(2,3)"><a href="#">點(diǎn)評(píng)</a></li>
</ul>
</div>
<div class="main" id="main2">
新聞內(nèi)容
</div>
</div>
效果演示:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
第一種形式: 通過(guò)更換顯示樣式實(shí)現(xiàn),這種很常見(jiàn),就不多說(shuō)了。
復(fù)制代碼 代碼如下:
<div id="tabs0">
<ul class="menu0" id="menu0">
<li onclick="setTab(0,0)" class="hover">新聞</li>
<li onclick="setTab(0,1)">評(píng)論</li>
<li onclick="setTab(0,2)">技術(shù)</li>
<li onclick="setTab(0,3)">點(diǎn)評(píng)</li>
</ul>
<div class="main" id="main0">
<ul class="block"><li>新聞列表</li></ul>
<ul><li>評(píng)論列表</li></ul>
<ul><li>技術(shù)列表</li></ul>
<ul><li>點(diǎn)評(píng)列表</li></ul>
</div>
</div>
第二種形式: 這種結(jié)構(gòu)比較復(fù)雜一些,外面加一個(gè)相對(duì)層(.menu1box),設(shè)置溢出隱藏,將選項(xiàng)卡(#menu1)設(shè)為絕對(duì)定位,設(shè)置層指針為1(z-index:1;),以便可以遮住下主區(qū)塊(.main1box)1px的高度。設(shè)置主區(qū)塊的邊框?yàn)?px的黑邊,上空白(margin-top)為-1px,使上邊框伸到選項(xiàng)卡下。當(dāng)改變選項(xiàng)卡某項(xiàng)(li)的背景為白色時(shí)便可遮住一部分主區(qū)塊的上邊框。這樣效果就實(shí)現(xiàn)了。
復(fù)制代碼 代碼如下:
<div id="tabs1">
<div class="menu1box">
<ul id="menu1">
<li class="hover" onmouseover="setTab(1,0)"><a href="#">新聞</a></li>
<li onmouseover="setTab(1,1)"><a href="#">評(píng)論</a></li>
<li onmouseover="setTab(1,2)"><a href="#">技術(shù)</a></li>
<li onmouseover="setTab(1,3)"><a href="#">點(diǎn)評(píng)</a></li>
</ul>
</div>
<div class="main1box">
<div class="main" id="main1">
<ul class="block"><li>新聞列表</li></ul>
<ul><li>評(píng)論列表</li></ul>
<ul><li>技術(shù)列表</li></ul>
<ul><li>點(diǎn)評(píng)列表</li></ul>
</div>
</div>
</div>
第一、二種形式的JS代碼:
復(fù)制代碼 代碼如下:
function setTab(m,n){
var tli=document.getElementById("menu"+m).getElementsByTagName("li"); /*獲取選項(xiàng)卡的LI對(duì)象*/
var mli=document.getElementById("main"+m).getElementsByTagName("ul"); /*獲取主顯示區(qū)域?qū)ο?/
for(i=0;i<tli.length;i++){
tli[i].className=i==n?"hover":""; /*更改選項(xiàng)卡的LI對(duì)象的樣式,如果是選定的項(xiàng)則使用.hover樣式*/
mli[i].style.display=i==n?"block":"none"; /*確定主區(qū)域顯示哪一個(gè)對(duì)象*/
}
}
第三種形式: 這也是一種不常用的方式,加一個(gè)相對(duì)層(.menu2box),利用一個(gè)背景層(#tip2)定位,通過(guò)改變層的左距離(left)實(shí)現(xiàn)效果。
復(fù)制代碼 代碼如下:
<div id="tabs2">
<div class="menu2box">
<div id="tip2"></div>
<ul id="menu2">
<li class="hover" onmouseover="nowtab(2,0)"><a href="#">新聞</a></li>
<li onmouseover="nowtab(2,1)"><a href="#">評(píng)論</a></li>
<li onmouseover="nowtab(2,2)"><a href="#">技術(shù)</a></li>
<li onmouseover="nowtab(2,3)"><a href="#">點(diǎn)評(píng)</a></li>
</ul>
</div>
<div class="main" id="main2">
新聞內(nèi)容
</div>
</div>
效果演示:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
您可能感興趣的文章:
- 關(guān)于Blog頂部的滾動(dòng)導(dǎo)航條代碼
- 非常不錯(cuò)的三種簡(jiǎn)潔的Tab導(dǎo)航(網(wǎng)頁(yè)選項(xiàng)卡)簡(jiǎn)析
- Javascript Tab 導(dǎo)航插件 (23個(gè))
- 基于Jquery的$.cookie()實(shí)現(xiàn)跨越頁(yè)面tabs導(dǎo)航實(shí)現(xiàn)代碼
- jquery scrollTop方法根據(jù)滾動(dòng)像素顯示隱藏頂部導(dǎo)航條
- 隨窗體滑動(dòng)的小插件sticky源碼
- JS幻燈片可循環(huán)播放可平滑旋轉(zhuǎn)帶滾動(dòng)導(dǎo)航(自寫(xiě))
- 導(dǎo)航跟隨滾動(dòng)條置頂移動(dòng)示例代碼
- sencha touch 模仿tabpanel導(dǎo)航欄TabBar的實(shí)例代碼
- jQuery 頂部導(dǎo)航跟隨滾動(dòng)條滾動(dòng)固定浮動(dòng)在頂部
- 使用Sticky組件實(shí)現(xiàn)帶sticky效果的tab導(dǎo)航和滾動(dòng)導(dǎo)航的方法
相關(guān)文章
用CSS控制表格或單元格強(qiáng)制換行,防止表格被英文單詞或中文撐大
自動(dòng)換行問(wèn)題,正常字符的換行是比較合理的,而連續(xù)的數(shù)字和英文字符常常將容器撐大,挺讓人頭疼,下面介紹的是CSS如何實(shí)現(xiàn)換行的方法2008-10-10用戶(hù)體驗(yàn)第一 font-size放棄px選擇em
2008-01-01左側(cè)固定寬度,右側(cè)自適應(yīng)寬度的CSS布局
一邊固定寬度,另一邊根據(jù)瀏覽器窗口大小自動(dòng)縮放寬度是這種很常用的布局。特別是在BS項(xiàng)目的界面設(shè)計(jì)中,幾乎都會(huì)用到。2008-09-09htm頁(yè)面中<a name>加name和id的沖突附解決方法
原來(lái)在<a name="jb51"> 和<span id="jb51">是沖突的,唉弄了好一會(huì),郁悶 臨時(shí)解決方法就是在后面的id中加了一個(gè)2,就是<span id="jb512">2008-07-07CSS 使用Sprites技術(shù)實(shí)現(xiàn)圓角效果
使用CSS Sprites技術(shù)畫(huà)圓角,簡(jiǎn)單的講就是把一個(gè)圓做在一張圖上,定義4個(gè)div,每個(gè)div取圖的一個(gè)角做背景,下面看具體實(shí)現(xiàn)方法。2016-04-04