//hash plugin ;(function($){if(!$.hash){$.hash=function(name,value){function isstring(obj){return typeof obj=="string"||object.prototype.tostring.call(obj)==="[object string]"}if(!isstring(name)||name==""){return}name=encodeuricomponent(name);var clearreg=new regexp("(;"+name+"=[^;]*)|(\\b"+name+"=[^;]*;)|(\\b"+name+"=[^;]*)","ig");var getreg=new regexp(";*\\b"+name+"=[^;]*","i");if(typeof value=="undefined"){var result=location.hash.match(getreg);return result?decodeuricomponent($.trim(result[0].split("=")[1])):null}else if(value===null){location.hash=location.hash.replace(clearreg,"")}else{value=value+"";var temp=location.hash.replace(clearreg,"");temp+=";"+name+"="+encodeuricomponent(value);location.hash=temp}}}})(jquery); //jquery plugin ;(function ($) { var defaults = { aflex:'.fold_flex', abox:'.fold_box', abtn:'.fold_btn', onclass:'active', index:0 // callbacks }; $.fn.xxfold = function (options) { //-----折叠插件 var options = $.extend(defaults, options); if(this.length == 0) return this; //支持多元素 if(this.length > 1){ this.each(function(){$(this).xxtab(options);}); return this; } var $this=this; var ele={ aflex:$this.find(options.aflex), abox:$this.find(options.abox), abtn:$this.find(options.abtn) }; $this.ilast=-1; $this.inow=options.index; function init(){ ele.abtn.eq($this.inow).addclass('active'); ele.aflex.eq($this.inow).height(ele.abox.eq($this.inow).outerheight()); } $this.moveto=function(a){ if(a||a==0){ $this.ilast=$this.inow; $this.inow=a; } if($this.ilast!=$this.inow){ ele.abtn.eq($this.ilast).removeclass('active'); ele.aflex.eq($this.ilast).stop().animate({height:0},'slow'); }; if(ele.abtn.eq($this.inow).hasclass('active')){ ele.abtn.eq($this.inow).removeclass('active'); ele.aflex.eq($this.inow).stop().animate({height:0},'slow'); }else{ ele.abtn.eq($this.inow).addclass('active'); ele.aflex.eq($this.inow).stop().animate({height:ele.abox.eq($this.inow).outerheight()},'slow'); } } ele.abtn.on('click',function(){ $this.ilast=$this.inow; $this.inow=ele.abtn.index(this); $this.moveto(); }); init(); return $this; } var defaults2 = { acon:'.js_tabbox>*', abtn:'.js_tabbtn>*', onclass:'active', index:0 // callbacks }; $.fn.xxtab = function (options) { //-----tab切换 var options = $.extend(defaults2, options); if(this.length == 0) return this; //支持多元素 if(this.length > 1){ this.each(function(){$(this).xxtab(options);}); return this; } var $this=this; var ele={ acon:$(options.acon,$this[0]), abtn:$(options.abtn,$this[0]) }; $this.inow=options.index; $this.change=function(a){ $this.inow=a; ele.acon.hide(); ele.acon.eq($this.inow).show(); ele.abtn.removeclass(options.onclass); ele.abtn.eq($this.inow).addclass(options.onclass); } ele.abtn.on('click',function(){ $this.change($(this).index()); }); $this.change($this.inow);//初始化 return $this; } })(jquery); var _xx=_xx||{};//_xx命名空间,_开头的为全局变量 _xx.mainnav=function(a){ //导航操作 //参数a 标示当前高亮的导航 _xx.navindex=a;//记录当前导航 var anav=$('#js_mainnav > li'), ohdc=$('#js_hdc'); if(a||a==0) anav.eq(a).addclass('active'); function flexh($obj,s){ var box=$obj.find('>div'); if(!box[0]) return; if(s==1) box.stop().animate({height:box.find('>div').outerheight()},500); else if(s==0) box.stop().animate({height:0},500); } anav.hover(function(){ flexh($(this),1) },function(){ flexh($(this),0) }); $(window).on('scroll',function(){ if($(window).scrolltop()>=30) ohdc.addclass('hd_fixed'); else ohdc.removeclass('hd_fixed'); }); }; _xx.select=function(){ //底部下拉菜单 var btn=$('#js_select .fs_btn'), flex=$('#js_select .fs_box'), box=$('#js_select .fs_box > div'); var minh=25; btn.on('click',function(){ if($(this).hasclass('on')){ flex.stop().animate({height:minh},'slow'); $(this).removeclass('on'); }else{ flex.stop().animate({height:box.height()},'slow'); $(this).addclass('on'); } }); }; _xx.pagechange=function(){ //内页切换 hash控制 var apage=$('.js_page'), obtnbox=$('#js_paging'), abtn=$('#js_paging a'); var inow=$.hash('p')||0;//当前页 var v_logic=true; var minus=$('#js_hdc').outerheight();//导航宽度 function is_hash(){ return ('onhashchange' in window); } function init(){ var p=$.hash('p'); if(p||p==0){ abtn.eq(inow).addclass('active'); var top=apage.eq(inow).offset().top-minus; $('html,body').scrolltop(top); } } function viewjudge(){ //右侧导航固定 if($(window).scrolltop()>=360){ obtnbox.addclass('paging_fixed'); }else{ obtnbox.removeclass('paging_fixed'); }; //判断当前显示页面 if(v_logic){ apage.each(function(i,d){ var distance=$(d).offset().top-$(window).scrolltop(); if(math.abs(distance)<100){ //当前显示的页面 abtn.removeclass('active'); abtn.eq(i).addclass('active'); return false; } }); } } function move(){ v_logic=false; inow=$.hash('p')||inow; abtn.removeclass('active'); abtn.eq(inow).addclass('active'); var top=apage.eq(inow).offset().top-minus; $('html,body').stop().animate({scrolltop:top},'slow',function(){ v_logic=true }); } init(); abtn.on('click',function(){ inow=$(this).index(); $.hash('p',inow); if(!is_hash()||inow==$.hash('p')) move(); return false; }); if(is_hash()){ $(window).on('hashchange',move); } $(window).on('scroll',viewjudge); } _xx.yearslider=function(){ var $ele={ wrap:$('#yearslider'), prev:$('#yearslider .fzlc_prev'), next:$('#yearslider .fzlc_next'), prevhint:$('#yearslider .fzlc_prev p'), nexthint:$('#yearslider .fzlc_next p'), view:$('#yearslider .fzlc_view'), cellbox:$('#yearslider .fzlc_view ul'), acell:$('#yearslider .fzlc_view li'), detail:$('#yearslider .fzlc_detail'), detailul:$('#yearslider .fzlc_detail ul') }; var vieww=$ele.view.width(); var step=250,//每次移动的距离 shownum=4;//显示列表的个数 var movex=0,inow=0,_length=$ele.acell.length; function adddata(obj){ var str=obj.attr('xdata'); var data=null,html=null; if(str){ data=str.split('|_|'); for(var i=0;i'; }; $ele.detailul.html(html.replace('null','')); }else{ $ele.detailul.html('资料暂无!'); }; } function update(obj){ //更新 var dist_x=obj.position().left+movex; adddata(obj);//更新文字数据 $ele.detail.removeclass('fz_markleft fz_markright'); if(dist_x_length-shownum) { inow=_length-shownum; $ele.nexthint.show(); } $ele.detail.hide(); movex=-inow*step; $ele.cellbox.stop().animate({left:movex},'slow'); } update($ele.acell.eq(inow)); $ele.acell.hover(function(){ update($(this)); },function(){}); $ele.prev.on('click',function(){ inow--; move(); }); $ele.next.on('click',function(){ inow++; move(); }); }