/** * jQuery.marquee - scrolling text like old marquee element * @author Aamir Afridi - aamirafridi(at)gmail(dot)com / http://aamirafridi.com/jquery/jquery-marquee-plugin */ !function(e){e.fn.marquee=function(t){return this.each((function(){var i,a,n,r,s,o=e.extend({},e.fn.marquee.defaults,t),u=e(this),d=3,p="animation-play-state",l=!1,c=function(e,t,i){for(var a=["webkit","moz","MS","o",""],n=0;n<a.length;n++)a[n]||(t=t.toLowerCase()),e.addEventListener(a[n]+t,i,!1)},f=function(){u.timer=setTimeout(A,o.delayBeforeStart)},m={pause:function(){l&&o.allowCss3Support?i.css(p,"paused"):e.fn.pause&&i.pause(),u.data("runningStatus","paused"),u.trigger("paused")},resume:function(){l&&o.allowCss3Support?i.css(p,"running"):e.fn.resume&&i.resume(),u.data("runningStatus","resumed"),u.trigger("resumed")},toggle:function(){m["resumed"==u.data("runningStatus")?"pause":"resume"]()},destroy:function(){clearTimeout(u.timer),u.find("*").addBack().unbind(),u.html(u.find(".js-marquee:first").html())}};if("string"!=typeof t){var g;e.each(o,(function(e,t){if(void 0!==(g=u.attr("data-"+e))){switch(g){case"true":g=!0;break;case"false":g=!1}o[e]=g}})),o.duration=o.speed||o.duration,r="up"==o.direction||"down"==o.direction,o.gap=o.duplicated?parseInt(o.gap):0,u.wrapInner('<div class="js-marquee"></div>');var h=u.find(".js-marquee").css({"margin-right":o.gap,float:"left"});if(o.duplicated&&h.clone(!0).appendTo(u),u.wrapInner('<div style="width:100000px" class="js-marquee-wrapper"></div>'),i=u.find(".js-marquee-wrapper"),r){var v=u.height();i.removeAttr("style"),u.height(v),u.find(".js-marquee").css({float:"none","margin-bottom":o.gap,"margin-right":0}),o.duplicated&&u.find(".js-marquee:last").css({"margin-bottom":0});var y=u.find(".js-marquee:first").height()+o.gap;o.startVisible&&!o.duplicated?(o._completeDuration=(parseInt(y,10)+parseInt(v,10))/parseInt(v,10)*o.duration,o.duration=parseInt(y,10)/parseInt(v,10)*o.duration):o.duration=(parseInt(y,10)+parseInt(v,10))/parseInt(v,10)*o.duration}else s=u.find(".js-marquee:first").width()+o.gap,a=u.width(),o.startVisible&&!o.duplicated?(o._completeDuration=(parseInt(s,10)+parseInt(a,10))/parseInt(a,10)*o.duration,o.duration=parseInt(s,10)/parseInt(a,10)*o.duration):o.duration=(parseInt(s,10)+parseInt(a,10))/parseInt(a,10)*o.duration;if(o.duplicated&&(o.duration=o.duration/2),o.allowCss3Support){var x=document.body||document.createElement("div"),I="marqueeAnimation-"+Math.floor(1e7*Math.random()),b="Webkit Moz O ms Khtml".split(" "),w="animation",S="",q="";if(x.style.animation&&(q="@keyframes "+I+" ",l=!0),!1===l)for(var j=0;j<b.length;j++)if(void 0!==x.style[b[j]+"AnimationName"]){var C="-"+b[j].toLowerCase()+"-";w=C+w,p=C+p,q="@"+C+"keyframes "+I+" ",l=!0;break}l&&(S=I+" "+o.duration/1e3+"s "+o.delayBeforeStart/1e3+"s infinite "+o.css3easing,u.data("css3AnimationIsSupported",!0))}var V=function(){i.css("margin-top","up"==o.direction?v+"px":"-"+y+"px")},k=function(){i.css("margin-left","left"==o.direction?a+"px":"-"+s+"px")};o.duplicated?(r?o.startVisible?i.css("margin-top",0):i.css("margin-top","up"==o.direction?v+"px":"-"+(2*y-o.gap)+"px"):o.startVisible?i.css("margin-left",0):i.css("margin-left","left"==o.direction?a+"px":"-"+(2*s-o.gap)+"px"),o.startVisible||(d=1)):o.startVisible?d=2:r?V():k();var A=function(){if(o.duplicated&&(1===d?(o._originalDuration=o.duration,o.duration=r?"up"==o.direction?o.duration+v/(y/o.duration):2*o.duration:"left"==o.direction?o.duration+a/(s/o.duration):2*o.duration,S&&(S=I+" "+o.duration/1e3+"s "+o.delayBeforeStart/1e3+"s "+o.css3easing),d++):2===d&&(o.duration=o._originalDuration,S&&(I+="0",q=e.trim(q)+"0 ",S=I+" "+o.duration/1e3+"s 0s infinite "+o.css3easing),d++)),r?o.duplicated?(d>2&&i.css("margin-top","up"==o.direction?0:"-"+y+"px"),n={"margin-top":"up"==o.direction?"-"+y+"px":0}):o.startVisible?2===d?(S&&(S=I+" "+o.duration/1e3+"s "+o.delayBeforeStart/1e3+"s "+o.css3easing),n={"margin-top":"up"==o.direction?"-"+y+"px":v+"px"},d++):3===d&&(o.duration=o._completeDuration,S&&(I+="0",q=e.trim(q)+"0 ",S=I+" "+o.duration/1e3+"s 0s infinite "+o.css3easing),V()):(V(),n={"margin-top":"up"==o.direction?"-"+i.height()+"px":v+"px"}):o.duplicated?(d>2&&i.css("margin-left","left"==o.direction?0:"-"+s+"px"),n={"margin-left":"left"==o.direction?"-"+s+"px":0}):o.startVisible?2===d?(S&&(S=I+" "+o.duration/1e3+"s "+o.delayBeforeStart/1e3+"s "+o.css3easing),n={"margin-left":"left"==o.direction?"-"+s+"px":a+"px"},d++):3===d&&(o.duration=o._completeDuration,S&&(I+="0",q=e.trim(q)+"0 ",S=I+" "+o.duration/1e3+"s 0s infinite "+o.css3easing),k()):(k(),n={"margin-left":"left"==o.direction?"-"+s+"px":a+"px"}),u.trigger("beforeStarting"),l){i.css(w,S);var t=q+" { 100% "+function(e){var t=[];for(var i in e)e.hasOwnProperty(i)&&t.push(i+":"+e[i]);return t.push(),"{"+t.join(",")+"}"}(n)+"}",p=i.find("style");0!==p.length?p.filter(":last").html(t):e("head").append("<style>"+t+"</style>"),c(i[0],"AnimationIteration",(function(){u.trigger("finished")})),c(i[0],"AnimationEnd",(function(){A(),u.trigger("finished")}))}else i.animate(n,o.duration,o.easing,(function(){u.trigger("finished"),o.pauseOnCycle?f():A()}));u.data("runningStatus","resumed")};u.bind("pause",m.pause),u.bind("resume",m.resume),o.pauseOnHover&&u.bind("mouseenter mouseleave",m.toggle),l&&o.allowCss3Support?A():f()}else e.isFunction(m[t])&&(i||(i=u.find(".js-marquee-wrapper")),!0===u.data("css3AnimationIsSupported")&&(l=!0),m[t]())}))},e.fn.marquee.defaults={allowCss3Support:!0,css3easing:"linear",easing:"linear",delayBeforeStart:1e3,direction:"left",duplicated:!1,duration:5e3,gap:20,pauseOnCycle:!1,pauseOnHover:!1,startVisible:!1}}(jQuery);