js實(shí)現(xiàn)仿百度風(fēng)云榜可重復(fù)多次調(diào)用的TAB切換選項(xiàng)卡效果
本文實(shí)例講述了js實(shí)現(xiàn)仿百度風(fēng)云榜可重復(fù)多次調(diào)用的TAB切換選項(xiàng)卡效果。分享給大家供大家參考。具體如下:
這是一款可在同一頁(yè)面中多次調(diào)用的TAB選項(xiàng)卡代碼,仿百度風(fēng)云榜的TAB切換效果,用到了幾張修飾圖片,請(qǐng)順著代碼下載所需的圖片,然后上傳到你的網(wǎng)站中,修改代碼內(nèi)的路徑就可以用了。
運(yùn)行效果截圖如下:
在線演示地址如下:
http://demo.jb51.net/js/2015/js-f-baidu-style-tab-cha-codes/
具體代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>仿百度風(fēng)云榜TAB切換</title> <style> body,div,h5,ul,li{margin:0;padding:0;} body{font:12px/1.5 Arial;} li{list-style:none;} a:link,a:visited{color:#333;text-decoration:none;} a:hover{text-decoration:underline;} #wrap{width:836px;border:3px solid #1972C0;border-width:3px 0;margin:10px auto;} #list{overflow:hidden;zoom:1;margin-left:-10px;} #wrap .item{display:inline;float:left;width:270px;padding-bottom:10px;border:1px solid #EBEBEB;margin:10px 0 10px 10px;} #wrap .item .tab{position:relative;height:25px;border-bottom:1px solid #CCC;margin:8px;} #wrap .item .tab h5{position:absolute;left:10px;font-size:14px;} #wrap .item .tab .switchBtn{position:absolute;top:3px;right:0;} #wrap .item .tab .switchBtn a{float:left;width:15px;height:15px;margin-left:5px;overflow:hidden;text-indent:-999px;background:url(images/icon_arr.gif) no-repeat;outline:none;} #wrap .item .tab .switchBtn a.prev{background-position:0 -25px;} #wrap .item .tab .switchBtn a.prevNot{background-position:0 0;cursor:default;} #wrap .item .tab .switchBtn a.next{background-position:right -25px;} #wrap .item .tab .switchBtn a.nextNot{background-position:right 0;cursor:default;} #wrap .item .tab ul{position:absolute;top:-2px;left:50px;width:160px;height:28px;overflow:hidden;} #wrap .item .tab ul li{float:left;cursor:pointer;line-height:26px;padding:0 8px;} #wrap .item .tab ul li.current{cursor:text;color:#E45E2E;font-weight:700;border:1px solid #CCC;border-bottom-color:#FFF;} #wrap .item .items{display:none;background:url(images/icon_num.gif) 15px 4px no-repeat;padding:0 15px;} #wrap .item .items a{color:#3A64B0;} #wrap .item .items li{height:24px;line-height:24px;padding-left:20px;border-bottom:1px solid #EBEBEB;} #wrap .item .btn{height:22px;margin-top:10px;} #wrap .item .btn a{float:right;width:74px;height:22px;overflow:hidden;margin-right:15px;text-indent:-9999px;background:url(images/icon_btn.gif) no-repeat;} #wrap .item .btn a:hover{background-position:0 -22px;} #copyright{color:#9A9A9A;text-align:center;} #copyright a{color:#FFF;padding:2px 5px;border-radius:10px;background:#9A9A9A;} </style> <script> var fgm = { $: function(id) { return typeof id === "object" ? id : document.getElementById(id); }, $$: function(tagName, oParent) { return (oParent || document).getElementsByTagName(tagName); }, $$$: function(className, element, tagName) { var i = 0, aClass = [], reClass = new RegExp("(^|\\s)" + className + "(\\s|$)"), aElement = fgm.$$(tagName || "*", element || document); for (i = 0; i < aElement.length; i++) reClass.test(aElement[i].className) && aClass.push(aElement[i]); return aClass; }, index: function(element) { var aChildren = element.parentNode.children, i; for(i = 0; i < aChildren.length; i++) if(aChildren[i] === element) return i; return -1; }, on: function(element, type, handler) { return element.addEventListener ? element.addEventListener(type, handler, !1) : element.attachEvent("on" + type, handler); }, bind: function(object, handler) { return function() { return handler.apply(object, arguments); }; } }; function Tab(id) { var that = this; this.obj = fgm.$(id); this.oTab = fgm.$$$("tab", this.obj)[0]; this.aTab = fgm.$$("li", this.oTab); this.oSwitch = fgm.$$$("switchBtn", this.oTab)[0]; this.oPrev = fgm.$$("a", this.oSwitch)[0]; this.oNext = fgm.$$("a", this.oSwitch)[1]; this.aItems = fgm.$$$("items", this.obj); this.iNow = 0; fgm.on(this.oSwitch, "click", fgm.bind(this, this.fnClick)); fgm.on(this.oTab, "mouseover", fgm.bind(this, this.fnMouseOver)); } Tab.prototype = { fnMouseOver: function(ev) { var oEv = ev || event, oTarget = oEv.target || oEv.srcElement; oTarget.tagName.toUpperCase() === "LI" && (this.iNow = fgm.index(oTarget)); this.fnSwitch(); }, fnClick: function(ev) { var oEv = ev || event, oTarget = oEv.target || oEv.srcElement, i; switch(fgm.index(oTarget)) { case 0: if(oTarget.className == "prev") { this.aTab[this.iNow].style.display = "block"; this.iNow--; }; break; case 1: if(oTarget.className == "next") { for(i = 0; i < this.iNow; i++) this.aTab[i].style.display = "none"; this.iNow++; }; break; }; this.aTab[this.iNow].style.display = "block"; this.fnSwitch(); }, fnSwitch: function() { for(var i = 0; i < this.aTab.length; i++) (this.aTab[i].className = "", this.aItems[i].style.display = "none"); this.aTab[this.iNow].className = "current"; this.aItems[this.iNow].style.display = "block"; this.oPrev.className = this.iNow == 0 ? "prevNot" : "prev"; this.oNext.className = this.iNow == this.aTab.length - 1 ? "nextNot" : "next"; } }; //應(yīng)用 fgm.on(window, "load", function() { var aItem = fgm.$$$("item"), i = 0; for(; i < aItem.length; i++) new Tab(aItem[i]); }); </script> </head> <body> <div id="wrap"> <div id="list"> <div class="item"> <div class="tab"> <h5><a href="#">教育</a></h5> <ul> <li class="current">基礎(chǔ)教育</li> <li>英語(yǔ)培訓(xùn)</li> </ul> <span class="switchBtn"><a href="javascript:;" class="prevNot">左</a><a href="javascript:;" class="next">右</a></span> </div> <ul class="items" style="display:block;"> <li><a href="#">北京四中網(wǎng)校</a></li> <li><a href="#">學(xué)大教育</a></li> <li><a href="#">中國(guó)統(tǒng)一教育網(wǎng)</a></li> <li><a href="#">101遠(yuǎn)程教育網(wǎng)</a></li> <li><a href="#">巨人教育</a></li> <li><a href="#">黃岡中學(xué)網(wǎng)校</a></li> </ul> <ul class="items"> <li><a href="#">新東方</a></li> <li><a href="#">英孚教育</a></li> <li><a href="#">環(huán)球雅思</a></li> <li><a href="#">韋博國(guó)際英語(yǔ)</a></li> <li><a href="#">華爾街英語(yǔ)</a></li> <li><a href="#">新航道</a></li> </ul> <div class="btn"><a href="#">完整榜單</a></div> </div> <div class="item"> <div class="tab"> <h5><a href="#">教育</a></h5> <ul> <li class="current">基礎(chǔ)教育</li> <li>英語(yǔ)培訓(xùn)</li> </ul> <span class="switchBtn"><a href="javascript:;" class="prevNot">左</a><a href="javascript:;" class="next">右</a></span> </div> <ul class="items" style="display:block;"> <li><a href="#">北京四中網(wǎng)校</a></li> <li><a href="#">學(xué)大教育</a></li> <li><a href="#">中國(guó)統(tǒng)一教育網(wǎng)</a></li> <li><a href="#">101遠(yuǎn)程教育網(wǎng)</a></li> <li><a href="#">巨人教育</a></li> <li><a href="#">黃岡中學(xué)網(wǎng)校</a></li> </ul> <ul class="items"> <li><a href="#">新東方</a></li> <li><a href="#">英孚教育</a></li> <li><a href="#">環(huán)球雅思</a></li> <li><a href="#">韋博國(guó)際英語(yǔ)</a></li> <li><a href="#">華爾街英語(yǔ)</a></li> <li><a href="#">新航道</a></li> </ul> <div class="btn"><a href="#">完整榜單</a></div> </div> <div class="item"> <div class="tab"> <h5><a href="#">教育</a></h5> <ul> <li class="current">基礎(chǔ)教育</li> <li>英語(yǔ)培訓(xùn)</li> </ul> <span class="switchBtn"><a href="javascript:;" class="prevNot">左</a><a href="javascript:;" class="next">右</a></span> </div> <ul class="items" style="display:block;"> <li><a href="#">北京四中網(wǎng)校</a></li> <li><a href="#">學(xué)大教育</a></li> <li><a href="#">中國(guó)統(tǒng)一教育網(wǎng)</a></li> <li><a href="#">101遠(yuǎn)程教育網(wǎng)</a></li> <li><a href="#">巨人教育</a></li> <li><a href="#">黃岡中學(xué)網(wǎng)校</a></li> </ul> <ul class="items"> <li><a href="#">新東方</a></li> <li><a href="#">英孚教育</a></li> <li><a href="#">環(huán)球雅思</a></li> <li><a href="#">韋博國(guó)際英語(yǔ)</a></li> <li><a href="#">華爾街英語(yǔ)</a></li> <li><a href="#">新航道</a></li> </ul> <div class="btn"><a href="#">完整榜單</a></div> </div> </div> <!--/list--> </div> </body> </html>
希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。
- JS實(shí)現(xiàn)簡(jiǎn)單的tab切換選項(xiàng)卡效果
- JS封裝的選項(xiàng)卡TAB切換效果示例
- JS實(shí)現(xiàn)仿Windows經(jīng)典風(fēng)格的選項(xiàng)卡Tab切換代碼
- 跨瀏覽器通用、可重用的選項(xiàng)卡tab切換js代碼
- 一個(gè)js的tab切換效果代碼[代碼分離]
- 基于jquery的tab切換 js原理
- javascript仿126郵箱TAB切換效果
- div+css+js模擬tab切換效果 事件綁定 IE,firefox兼容
- jQuery插件zepto.js簡(jiǎn)單實(shí)現(xiàn)tab切換
- javascript的tab切換原理與效果實(shí)現(xiàn)方法
- JS使用面向?qū)ο蠹夹g(shù)實(shí)現(xiàn)的tab選項(xiàng)卡效果示例
- 基于JavaScript實(shí)現(xiàn)Tab選項(xiàng)卡切換效果
- JS實(shí)現(xiàn)圖文并茂的tab選項(xiàng)卡效果示例【附demo源碼下載】
- JS實(shí)現(xiàn)的tab切換選項(xiàng)卡效果示例
相關(guān)文章
按下Enter焦點(diǎn)移至下一個(gè)控件的實(shí)現(xiàn)js代碼
正如標(biāo)題所言使用js操作按下Enter焦點(diǎn)移至下一個(gè)控件,具體的實(shí)現(xiàn)示例如下,需要的朋友可以參考下2013-12-12微信小程序地圖定位的實(shí)現(xiàn)方法實(shí)例
小程序功能的強(qiáng)大想必使用過(guò)的人都知道,下面這篇文章主要給大家介紹了關(guān)于微信小程序地圖定位的實(shí)現(xiàn)方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04詳解如何編寫(xiě)一個(gè)Typescript的類型聲明文件
我們知道TypeScript根據(jù)類型聲明進(jìn)行類型檢查,但有些情況可能沒(méi)有類型聲明,這個(gè)時(shí)候就需要我們自己寫(xiě)一個(gè),下面小編就來(lái)和大家聊聊如果寫(xiě)一個(gè)Typescript的類型聲明文件呢2023-06-06淺析JavaScript Array和string的轉(zhuǎn)換(推薦)
下面小編就為大家?guī)?lái)一篇淺析JavaScript Array和string的轉(zhuǎn)換(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05JavaScript中的函數(shù)申明、函數(shù)表達(dá)式、箭頭函數(shù)
js中的函數(shù)可以通過(guò)幾種方式創(chuàng)建,具體創(chuàng)建方法通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),文中通過(guò)例子給大家介紹了函數(shù)聲明和表達(dá)式之間的差別,感興趣的朋友跟隨小編一起看看吧2019-12-12完美實(shí)現(xiàn)js選項(xiàng)卡切換效果(一)
這篇文章主要為大家詳細(xì)介紹如何完美實(shí)現(xiàn)js選項(xiàng)卡切換效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03js 下拉菜單點(diǎn)擊旁邊收起實(shí)現(xiàn)(踩坑記)
這篇文章主要介紹了js 下拉菜單點(diǎn)擊旁邊收起實(shí)現(xiàn)(踩坑記),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09