var frontcolumns_navigation01={ currentcolumn : 0, //当前选中栏目的位置 isshowsecondcolumn : "", //是否显示二级导航 compid : "", //组件id addclickevent:function(){ //给一级导航栏目就点击事件 $(".navmenu li").each(function(i){ $(this).bind("click", function(){ $("#columns-"+frontcolumns_navigation01.compid+"-"+frontcolumns_navigation01.currentcolumn).removeclass("navmenubg"+frontcolumns_navigation01.currentcolumn); $(this).addclass("navmenubg"+i); if(frontcolumns_navigation01.isshowsecondcolumn.length > 0){ $("#secondcolumns-"+frontcolumns_navigation01.compid+"-"+frontcolumns_navigation01.currentcolumn).hide(); $("#secondcolumns-"+frontcolumns_navigation01.compid+"-"+i).show(); } frontcolumns_navigation01.currentcolumn = i; }); }); }, addmouseoverevent:function(){ //给一级导航栏目增加鼠标悬停事件 $(".navmenu li").each(function(i){ $(this).bind("mouseover", function(){ $("#columns-"+frontcolumns_navigation01.compid+"-"+frontcolumns_navigation01.currentcolumn).removeclass("navmenubg"+frontcolumns_navigation01.currentcolumn); $(this).addclass("navmenubg"+i); if(frontcolumns_navigation01.isshowsecondcolumn.length > 0){ $("#secondcolumns-"+frontcolumns_navigation01.compid+"-"+frontcolumns_navigation01.currentcolumn).hide(); $("#secondcolumns-"+frontcolumns_navigation01.compid+"-"+i).show(); } }); }); }, addmouseoutevent:function(){ //给一级导航栏目增加鼠标移出事件 $(".navmenu li").each(function(i){ $(this).bind("mouseout", function(){ $(this).removeclass("navmenubg"+i); $("#columns-"+frontcolumns_navigation01.compid+"-"+frontcolumns_navigation01.currentcolumn).addclass("navmenubg"+frontcolumns_navigation01.currentcolumn); if(frontcolumns_navigation01.isshowsecondcolumn.length > 0){ $("#secondcolumns-"+frontcolumns_navigation01.compid+"-"+i).hide(); $("#secondcolumns-"+frontcolumns_navigation01.compid+"-"+frontcolumns_navigation01.currentcolumn).show(); } }); }); }, setselectedcolumn:function(index){ //获取当前页面要选中的栏目的位置,默认是0 var curcolumn = this.geturlparam(index); if(curcolumn != null){ this.currentcolumn = curcolumn; } }, setfocuscolumn: function(){ //给当前选中的一级栏目增加背景及显示其二级栏目 $("#columns-"+frontcolumns_navigation01.compid+"-"+this.currentcolumn).addclass("navmenubg"+this.currentcolumn); if(this.isshowsecondcolumn.length > 0){ $("#secondcolumns-"+frontcolumns_navigation01.compid+"-"+this.currentcolumn).show(); } }, geturlparam:function(name){ //获取url参数 var reg = new regexp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.tostring().match(reg); if (r!=null) return unescape(r[2]); return null; }, init:function(compid, index, secondcolumn){ //初始化.index:表示栏目位置的参数名称,secondcolumn:是否显示二级栏目 this.compid = compid; this.isshowsecondcolumn = secondcolumn; this.setselectedcolumn(compid+"-"+index); this.addclickevent(); this.addmouseoverevent(); this.addmouseoutevent(); this.setfocuscolumn(); }, //导航扩展样式效果 extevents:function(compid, showsecond){ var extcurrentcolumn = this.geturlparam(compid+"firstcolumnid"); var secondcolumnid = this.geturlparam(compid+"secondcolumnid"); if(extcurrentcolumn == null){ extcurrentcolumn = $("#"+compid+" ul.nav-first .first").attr("id"); }else{ extcurrentcolumn = "columns"+extcurrentcolumn; } if(secondcolumnid == null){ secondcolumnid = $("#"+compid+" #"+extcurrentcolumn+" .nav-second .nav-sec-main ul li:first a").attr("id"); }else{ secondcolumnid = "cols"+secondcolumnid; } $("#"+compid+" #"+extcurrentcolumn).addclass("current"); $("#"+compid+" #"+secondcolumnid).addclass("current-a"); $("#"+compid+" #"+extcurrentcolumn+"sub").show(); if(showsecond){ $("#"+compid+" ul.nav-first li[id^='columns']").hover( function () { if($(this).attr("id") != extcurrentcolumn){ $("#"+compid+" #"+extcurrentcolumn).removeclass("current"); $("#"+compid+" #"+extcurrentcolumn+"sub").hide(); $(this).addclass("current"); $("#"+compid+" #"+$(this).attr("id")+"sub").show(); if(!$(this).find(".nav-second .nav-sec-main a").hasclass("current-a")){ $(this).find(".nav-second .nav-sec-main a:first").addclass("current-a") } } }, function () { $(this).removeclass("current"); $("#"+compid+" #"+$(this).attr("id")+"sub").hide(); $("#"+compid+" #"+extcurrentcolumn).addclass("current"); $("#"+compid+" #"+extcurrentcolumn+"sub").show(); } ); $("#"+compid+" ul.nav-first li[id^='columns']").click(function(){ $("#"+compid+" #"+extcurrentcolumn).removeclass("current"); $("#"+compid+" #"+extcurrentcolumn+"sub").hide(); $(this).addclass("current"); $("#"+compid+" #"+$(this).attr("id")+"sub").show(); extcurrentcolumn = $("#"+compid+" ul.nav-first li.current").attr("id"); }); $("#"+compid+" ul.nav-first .nav-second .nav-sec-main a").click(function(){ $(this).parent().parent().find("a").removeclass("current-a"); $(this).addclass("current-a"); var cursecid = $(this).parents(".nav-second").attr("id"); if(cursecid !== extcurrentcolumn+"sub"){ $("#"+compid+" #"+extcurrentcolumn).removeclass("current"); $("#"+compid+" #"+extcurrentcolumn+"sub").hide(); extcurrentcolumn = cursecid.substring(0, cursecid.length-3); $("#"+compid+" #"+extcurrentcolumn).addclass("current"); $("#"+compid+" #"+cursecid).show(); } }); }else{ $("#"+compid+" ul.nav-first li[id^='columns']").hover( function () { if($(this).attr("id") != extcurrentcolumn){ $("#"+compid+" #"+extcurrentcolumn).removeclass("current"); $(this).addclass("current"); } }, function () { $(this).removeclass("current"); $("#"+compid+" #"+extcurrentcolumn).addclass("current"); } ); $("#"+compid+" ul.nav-first li[id^='columns']").click(function(){ $("#"+compid+" #"+extcurrentcolumn).removeclass("current"); $(this).addclass("current"); extcurrentcolumn = $("#"+compid+" ul.nav-first li.current").attr("id"); }); } }, //f2样式的js效果 //** all levels navigational menu- (c) dynamic drive dhtml code library: http://www.dynamicdrive.com //** script download/ instructions page: http://www.dynamicdrive.com/dynamicindex1/ddlevelsmenu/ //** usage terms: http://www.dynamicdrive.com/notice.htm //** current version: 2.2 see changelog.txt for details ddlevelsmenu : { enableshim: true, //enable iframe shim to prevent drop down menus from being hidden below select or flash elements? (tip: disable if not in use, for efficiency) arrowpointers:{ downarrow: ["../images/columns/arrow-down.gif", 11,7], //[path_to_down_arrow, arrowwidth, arrowheight] rightarrow: ["../images/columns/arrow-right.gif", 12,12], //[path_to_right_arrow, arrowwidth, arrowheight] showarrow: {toplevel: true, sublevel: true} //show arrow images on top level items and sub level items, respectively? }, hideinterval: 200, //delay in milliseconds before entire menu disappears onmouseout. effects: {enableswipe: true, enablefade: true, duration: 200}, httpsiframesrc: "blank.htm", //if menu is run on a secure (https) page, the iframe shim feature used by the script should point to an *blank* page *within* the secure area to prevent an ie security prompt. specify full url to that page on your server (leave as is if not applicable). ///no need to edit beyond here//////////////////// topmenuids: [], //array containing ids of all the primary menus on the page topitems: {}, //object array containing all top menu item links subuls: {}, //object array containing all uls lastactivesubul: {}, //object object containing info for last mouse out menu item's ul topitemsindex: -1, ulindex: -1, hidetimers: {}, //object array timer shimadded: false, nonff: !/firefox[\/\s](\d+\.\d+)/.test(navigator.useragent), //detect non ff browsers getoffset:function(what, offsettype){ return (what.offsetparent)? what[offsettype]+this.getoffset(what.offsetparent, offsettype) : what[offsettype] }, getoffsetof:function(el){ el._offsets={left:this.getoffset(el, "offsetleft"), top:this.getoffset(el, "offsettop")} }, getwindowsize:function(){ this.docwidth=window.innerwidth? window.innerwidth-10 : this.standardbody.clientwidth-10 this.docheight=window.innerheight? window.innerheight-15 : this.standardbody.clientheight-18 }, gettopitemsdimensions:function(){ for (var m=0; m0){ this.shimmy.topshim.style.left=scrollx+"px" this.shimmy.topshim.style.top=scrolly+"px" this.shimmy.topshim.style.width="99%" this.shimmy.topshim.style.height=topgap+"px" //distance from top window edge to top of menu item } if (bottomgap>0){ this.shimmy.bottomshim.style.left=scrollx+"px" this.shimmy.bottomshim.style.top=header._offsets.top + header._dimensions.h +"px" this.shimmy.bottomshim.style.width="99%" this.shimmy.bottomshim.style.height=bottomgap+"px" //distance from bottom of menu item to bottom window edge } } }, hideshim:function(){ this.shimmy.topshim.style.width=this.shimmy.bottomshim.style.width=0 this.shimmy.topshim.style.height=this.shimmy.bottomshim.style.height=0 }, buildmenu:function(mainmenuid, header, submenu, submenupos, istoplevel, dir){ header._master=mainmenuid //indicate which top menu this header is associated with header._pos=submenupos //indicate pos of sub menu this header is associated with header._istoplevel=istoplevel if (istoplevel){ this.addevent(header, function(e){ frontcolumns_navigation01.ddlevelsmenu.hidemenu(frontcolumns_navigation01.ddlevelsmenu.subuls[this._master][parseint(this._pos)]) }, "click") } this.subuls[mainmenuid][submenupos]=submenu header._dimensions={w:header.offsetwidth, h:header.offsetheight, submenuw:submenu.offsetwidth, submenuh:submenu.offsetheight} this.getoffsetof(header) //submenu.style.left=0 //submenu.style.top=0 submenu.style.visibility="hidden" this.addevent(header, function(e){ //mouseover event if (!frontcolumns_navigation01.ddlevelsmenu.iscontained(this, e)){ var submenu=frontcolumns_navigation01.ddlevelsmenu.subuls[this._master][parseint(this._pos)] if (this._istoplevel){ frontcolumns_navigation01.ddlevelsmenu.css(this, "selected", "add") cleartimeout(frontcolumns_navigation01.ddlevelsmenu.hidetimers[this._master][this._pos]) } frontcolumns_navigation01.ddlevelsmenu.getoffsetof(header) var scrollx=window.pagexoffset? window.pagexoffset : frontcolumns_navigation01.ddlevelsmenu.standardbody.scrollleft var scrolly=window.pageyoffset? window.pageyoffset : frontcolumns_navigation01.ddlevelsmenu.standardbody.scrolltop var submenurightedge=this._offsets.left + this._dimensions.submenuw + (this._istoplevel && dir=="topbar"? 0 : this._dimensions.w) var submenubottomedge=this._offsets.top + this._dimensions.submenuh //sub menu starting left position var menuleft=(this._istoplevel? this._offsets.left + (dir=="sidebar"? this._dimensions.w : 0) : this._dimensions.w) if (submenurightedge-scrollx>frontcolumns_navigation01.ddlevelsmenu.docwidth){ menuleft+= -this._dimensions.submenuw + (this._istoplevel && dir=="topbar" ? this._dimensions.w : -this._dimensions.w) } submenu.style.left=menuleft+"px" //sub menu starting top position var menutop=(this._istoplevel? this._offsets.top + (dir=="sidebar"? 0 : this._dimensions.h) : this.offsettop) if (submenubottomedge-scrolly>frontcolumns_navigation01.ddlevelsmenu.docheight){ //no room downwards? if (this._dimensions.submenuh