js實(shí)現(xiàn)tab切換效果
效果如下:

代碼如下:
<!DOCTYPE html >
<html>
<head>
<meta charset="utf-8" />
<title>js封裝一個(gè)tab效果</title>
<style type="text/css">
*{margin:0; padding:0;}
body { font:12px/1.8 Arial; color:#666;}
.wrapper { width:500px; border:1px solid #e6e6e6; margin:0 auto; padding:50px;}
/*--=tabPanel--*/
#tab{border:1px solid #ccc;}
#tab .tab-bd{border-top:none;margin:0 auto;padding:10px;text-align:left;height:120px;position:relative}
.tab-nav{margin:0 auto;padding:0;background:#eee;height:26px;}
.tab-nav li{display:inline;list-style:none outside none;width:90px;height:26px;float:left;line-height:26px;text-align:center;}
.tab-nav li a{color:#555;display:inline-block}
.tab-nav li a:hover,.tab-nav li.hover a{text-decoration:none;background:#fff;color:#000;display:block; }
.hidden{display:none}
</style>
<script type="text/javascript">
function tabPanel(param){
var defaultIndex=param["default"]||0,//設(shè)置顯示的頁(yè)面
panelobj=param["panel"],//設(shè)置tab容器
defalutClass=param["defalutStyle"]||"",//設(shè)置tab菜單項(xiàng)的普通樣式
hoverClass=param["hoverStyle"]||"hover",//設(shè)置鼠標(biāo)移到tab菜單項(xiàng)的樣式
currentIndex=defaultIndex,
menus=_$(panelobj).getElementsByTagName("ul")[0].getElementsByTagName("li"),
contents=_$(panelobj).getElementsByTagName("ul")[1].getElementsByTagName("li"),
menuNumber=menus.length,
hidden="hidden";
for(var i=0;i<menuNumber;i++){
_setClass(contents[0],hoverClass);
_setClass(contents[i],hidden);
_setClass(menus[i],defalutClass);
(function(i){
menus[i].onmouseover=function(){
var old=menus[currentIndex];
_setClass(old,defalutClass);
_setClass(contents[currentIndex],hidden);
var cur=menus[i];
_setClass(cur,hoverClass);
currentIndex=i;
_setClass(contents[i],"");
};
})(i);
}
_setClass(menus[currentIndex],hoverClass);
_setClass(contents[currentIndex],"");
//便利函數(shù)
function _setClass(obj,className){obj.className=className}
function _$(oid){return typeof(oid) == "string"?document.getElementById(oid):oid}
}
</script>
<body>
<div class="wrapper">
<div id="tab">
<!-- tabHead -->
<ul class="tab-nav">
<li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" >交易安全</a></li>
<li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" >淘寶大學(xué)</a></li>
<li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" >愛(ài)心</a></li>
</ul>
<!-- tabPanel-->
<ul class="tab-bd">
<li>
1111
</li>
<li>
222
</li>
<li>
333
</li>
</ul>
</div>
<script type="text/javascript">
tabPanel({"panel":"tab"});//panel為必填項(xiàng),default、defalutStyle、hoverStyle為選填項(xiàng)
</script>
</div>
</body>
</html>
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
微信小程序?qū)崿F(xiàn)簡(jiǎn)單購(gòu)物車功能
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)簡(jiǎn)單購(gòu)物車功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12
JavaScript設(shè)計(jì)模式之觀察者模式實(shí)例詳解
這篇文章主要介紹了JavaScript設(shè)計(jì)模式之觀察者模式,結(jié)合實(shí)例形式詳細(xì)分析了javascript觀察者模式的概念、原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-01-01
JavaScript中clientWidth,offsetWidth,scrollWidth的區(qū)別
這篇文章主要介紹了Element中clientWidth,offsetWidth,scrollWidth的區(qū)別,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下2021-01-01
JS箭頭函數(shù)和常規(guī)函數(shù)之間的區(qū)別實(shí)例分析【 5 個(gè)區(qū)別】
這篇文章主要介紹了JS箭頭函數(shù)和常規(guī)函數(shù)之間的區(qū)別,結(jié)合實(shí)例形式分析了JS箭頭函數(shù)和常規(guī)函數(shù)之間的 5 個(gè)區(qū)別與相關(guān)使用注意事項(xiàng),需要的朋友可以參考下2020-05-05
原生javascript自定義input[type=radio]效果示例
這篇文章主要介紹了原生javascript自定義input[type=radio]效果,結(jié)合實(shí)例形式分析了javascript模擬form表單中radio效果的相關(guān)操作技巧,需要的朋友可以參考下2019-08-08
bootstrap——bootstrapTable實(shí)現(xiàn)隱藏列的示例
本篇文章主要介紹了bootstrapTable實(shí)現(xiàn)隱藏列的示例,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01
基于JavaScript實(shí)現(xiàn)圖片點(diǎn)擊彈出窗口而不是保存
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)圖片點(diǎn)擊彈出窗口而不是保存的相關(guān)資料,需要的朋友可以參考下2016-02-02
微信小程序全局變量改變監(jiān)聽(tīng)的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于微信小程序全局變量改變監(jiān)聽(tīng)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用微信小程序具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07

