本文实例讲述了js基于面向对象实现网页TAB选项卡菜单效果代码。分享给大家供大家参考。具体如下:
这是一款自动的网页TAB,基于面向对象的选项卡菜单,由于时间关系只做了简单的实现,界面没有美化,不多做介绍了。
先来看看运行效果截图:
在线演示地址如下:
http://demo.phpstudy.net/js/2015/js-mxdx-tab-cha-style-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>选项卡</title> <style type=\"text/css\"> body, h2, p { margin:0px; padding:0px; } ul, li { margin:0px; padding:0px; float:left; list-style-type:none; } body { font-size:12px; } .box { width:722px; height:99px; margin:10px auto; border:1px solid #dedede; } .list { width:711px; height:22px; float:left; padding:4px 0 0 9px; border-top:1px solid #fff; border-left:1px solid #fff; border-right:1px solid #fff; background:url(images/tabbg.jpg) repeat-x; } .list li { width:74px; height:22px; float:left; cursor:pointer; color:#656565; line-height:22px; text-align:center; } .list li.hove { width:72px; height:20px; color:#fc6703; line-height:20px; border-top:1px solid #dedede; border-left:1px solid #dedede; border-right:1px solid #dedede; border-bottom:1px solid #fff; background:#fff; } .content { width:722px; height:72px; float:left; display:none; } </style> <script type=\"text/javascript\"> function $(id){ return typeof id === \"string\" ? document.getElementById(id) : id; } function $$(oParent, elem){ return (oParent || document).getElementsByTagName(elem); } function $$$(oParent, sClass){ var aElem = $$(oParent, \'*\'); var aClass = []; var i = 0; for(i=0;i<aElem.length;i++)if(aElem[i].className == sClass)aClass.push(aElem[i]); return aClass; } function addEvent(oElm, strEvent, fuc) { window.addEventListener ? oElm.addEventListener(strEvent, fuc, false) : oElm.attachEvent(\'on\' + strEvent, fuc); }; function Tab(){ this.initialize.apply(this, arguments); } Object.extend = function(destination, source) { for (var property in source) { destination[property] = source[property]; } return destination; }; Tab.prototype = { initialize : function(obj, dis, content, onEnd, eq){ this.obj = $(obj); this.oList = $$$(this.obj, \'list\')[0]; this.aCont = $$$(this.obj, content); this.oUl = $$(this.oList, \'ul\')[0]; this.aLi = this.oUl.children; this.timer = null; eq ? (this.aLi.length < eq ? eq = 0 : eq) : eq = 0; this.oEve(onEnd); this.onEnd.method == \'mouseover\' ? this.method = \"mouseover\" : this.method = \"click\"; this.onEnd.autoplay == \'stop\' ? this.autoplay = \"stop\" : this.autoplay = \"play\"; this.aCont[eq].style.display = \'block\'; this.aLi[eq].className = \'hove\'; this.display(dis); this.autoPlayTab(eq, dis); }, oEve: function(onEnd){ this.onEnd = { method: \'mouseover\', autoplay: \'stop\', }; Object.extend(this.onEnd, onEnd || {}); }, display : function(dis){ var _this = this; var i = iNow = 0; for(i=0;i<this.aLi.length;i++){ (function(){ var j = i; addEvent(_this.aLi[j], _this.method, function() { _this.fnClick(j,dis); _this.autoPlayTab(j, dis); }) })() } }, autoPlayTab : function(iNow, dis){ if(this.autoplay == \'play\'){ var _this = this; this.iNow = iNow; this.obj.onmouseover = function(){ clearInterval(_this.timer); }; this.obj.onmouseout = function(){ clearInterval(_this.timer); _this.timer = setInterval(playTab,5000); }; clearInterval(_this.timer); _this.timer = setInterval(playTab,5000); function playTab(){ if(_this.iNow == _this.aLi.length)_this.iNow = 0; _this.fnClick(_this.iNow, dis) _this.iNow++ } } }, fnClick : function(oBtn, dis){ var i = 0; for(i=0;i<this.aLi.length;i++)this.aLi[i].className = \'\',this.aCont[i].style.display = \'none\'; this.aLi[oBtn].className = dis; this.aCont[oBtn].style.display = \'block\'; } }; window.onload = function(){ new Tab(\"box\", \'hove\', \'content\', { method : \'mouseover\', autoplay : \'play\' },0); new Tab(\"box1\", \'hove\', \'content\', { method : \'click\', },0); }; </script> </head> <body> <div id=\"box\" class=\"box\"> <div class=\"list\"> <ul> <li>团购导航</li> <li>商城导航</li> <li>淘宝导航</li> </ul> </div> <div class=\"content\">111</div> <div class=\"content\">222</div> <div class=\"content\">333</div> </div> <div id=\"box1\" class=\"box\"> <div class=\"list\"> <ul> <li>团购导航</li> <li>商城导航</li> <li>淘宝导航</li> </ul> </div> <div class=\"content\">111</div> <div class=\"content\">222</div> <div class=\"content\">333</div> </div> </body> </html>
希望本文所述对大家的JavaScript程序设计有所帮助。
本文地址:https://www.stayed.cn/item/8499
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我