/*** @name marquee-slide @description 基于 jquery 的多功能无缝滚动插件 @url https://github.com/wange1228/marquee-slide @version 0.4.3 @author 万戈 @blog http://wange.im ***/ !function(a){var b;b=function(){function b(b,c){this.elements={wrap:b,ul:b.children(),li:b.children().children()},this.settings=a.extend({},a.fn.marquee.defaults,c),this.cache={allowmarquee:!0}}return b.prototype.init=function(){this.setstyle(),this.move(),this.bind()},b.prototype.setstyle=function(){var a,b,c,d,e,f,g,h;switch(d=this.elements.li.outerwidth(!0),c=this.elements.li.outerheight(!0),b=math.max(parseint(this.elements.li.css("margin-top"),10),parseint(this.elements.li.css("margin-bottom"),10)),this.settings.type){case"horizontal":h=this.settings.shownum*d,g=c,f=9999,e="auto",a="left",this.cache.stepw=this.settings.steplen*d,this.cache.prevanimateobj={left:-this.cache.stepw},this.cache.nextanimateobj={left:0},this.cache.leftortop="left";break;case"vertical":h=d,g=this.settings.shownum*c-b,f="auto",e=9999,a="none",this.cache.stepw=this.settings.steplen*c-b,this.cache.prevanimateobj={top:-this.cache.stepw},this.cache.nextanimateobj={top:0},this.cache.leftortop="top"}this.elements.wrap.css({position:"relative",width:h,height:g,overflow:"hidden"}),this.elements.ul.css({position:"relative",width:f,height:e}),this.elements.li.css({"float":a})},b.prototype.bind=function(){var a,b,c,d,e,f;f=this,null!=(a=this.settings.prevelement)&&a.click(function(a){a.preventdefault(),f.prev()}),null!=(b=this.settings.nextelement)&&b.click(function(a){a.preventdefault(),f.next()}),null!=(c=this.settings.pauseelement)&&c.click(function(a){a.preventdefault(),f.pause()}),null!=(d=this.settings.resumeelement)&&d.click(function(a){a.preventdefault(),f.resume()}),null!=(e=this.elements.wrap)&&e.hover(function(){f.pause()},function(){f.resume()})},b.prototype.move=function(){var a,b,c;if(c=this,this.settings.auto){switch(this.settings.direction){case"forward":b=c.prev;break;case"backward":b=c.next}a=c.settings.interval,settimeout(function(){b.call(c),settimeout(arguments.callee,a)},a),this.cache.movebefore=this.cache.moveafter=function(){return null}}else this.cache.movebefore=function(){return c.cache.allowmarquee=!1},this.cache.moveafter=function(){return c.cache.allowmarquee=!0}},b.prototype.prev=function(){var a,b,c;c=this,this.cache.allowmarquee&&(this.cache.movebefore.call(this),this.settings.prevbefore.call(this),b=this.elements.ul,a=b.children().slice(0,this.settings.steplen),a.clone().appendto(b),b.animate(this.cache.prevanimateobj,this.settings.speed,function(){b.css(c.cache.leftortop,0),a.remove(),c.cache.moveafter.call(c),c.settings.prevafter.call(c)}))},b.prototype.next=function(){var a,b,c;c=this,this.cache.allowmarquee&&(this.cache.movebefore.call(this),this.settings.nextbefore.call(this),b=this.elements.ul,a=b.children().slice(-this.settings.steplen),a.clone().prependto(b),b.css(c.cache.leftortop,-this.cache.stepw).animate(this.cache.nextanimateobj,this.settings.speed,function(){a.remove(),c.cache.moveafter.call(c),c.settings.nextafter.call(c)}))},b.prototype.pause=function(){this.settings.pausebefore.call(this),this.cache.allowmarquee=!1,this.settings.pauseafter.call(this)},b.prototype.resume=function(){this.settings.resumebefore.call(this),this.cache.allowmarquee=!0,this.settings.resumeafter.call(this)},b}(),a.fn.marquee=function(c){this.each(function(){var d;d=new b(a(this),c),d.init()})},a.fn.marquee.defaults={auto:!0,interval:3e3,direction:"forward",speed:500,shownum:1,steplen:1,type:"horizontal",prevelement:null,prevbefore:function(){},prevafter:function(){},nextelement:null,nextbefore:function(){},nextafter:function(){},pauseelement:null,pausebefore:function(){},pauseafter:function(){},resumeelement:null,resumebefore:function(){},resumeafter:function(){}}}(jquery);