vegas.min.js 7.0 KB

1234567891011
  1. /*!-----------------------------------------------------------------------------
  2. * Vegas - Fullscreen Backgrounds and Slideshows.
  3. * v2.0.0-wip - built 2015-01-15
  4. * Licensed under the MIT License.
  5. * http://vegas.jaysalvat.com/
  6. * ----------------------------------------------------------------------------
  7. * Copyright (C) 2010-2015 Jay Salvat
  8. * http://jaysalvat.com/
  9. * --------------------------------------------------------------------------*/
  10. !function(s){"use strict";var t={slide:0,delay:5e3,preload:!0,timer:!0,overlay:!1,autoplay:!0,shuffle:!1,fill:!0,color:null,align:"center",valign:"center",transition:"fade",transitionDelay:1e3,init:function(){},play:function(){},pause:function(){},walk:function(){},slides:[]},i=function(i,e){this.elmt=i,this.settings=s.extend({},t,s.vegas.defaults,e),this.slide=this.settings.slide,this.total=this.settings.slides.length,this.noshow=this.total<2,this.paused=!this.settings.autoplay||this.noshow,this.$elmt=s(i),this.$timer=null,this.$overlay=null,this.$slide=null,this.timeout=null,this.transitions=[],this.support={objectFit:"objectFit"in document.body.style,transition:"transition"in document.body.style||"WebkitTransition"in document.body.style,video:s.vegas.isVideoCompatible()};for(var n=0;n<document.styleSheets.length;n++){var o=document.styleSheets[n],a=o.rules?o.rules:o.cssRules;if(/vegas(\.min)?\.css$/.test(o.href))for(var l=0;l<a.length;l++){var h=a[l],r=/vegas\-transition\-(.*)-|\b/gi.exec(h.selectorText);r&&r[1]&&this.transitions.push(r[1])}}this.settings.shuffle===!0&&this.shuffle(),this._init()};i.prototype={_init:function(){var t,i,e,n,o,a="BODY"===this.elmt.tagName,l=this.settings.timer,h=this.settings.overlay,r=this.settings.preload,d=this.$elmt.css("position");if(r)for(o=0;o<this.settings.slides.length;o++)n=new Image,n.src=this.settings.slides[o].src;a||(t=s('<div class="vegas-wrapper">').css("overflow",this.$elmt.css("overflow")).css("padding",this.$elmt.css("padding")),this.$elmt.css("padding")||t.css("padding-top",this.$elmt.css("padding-top")).css("padding-bottom",this.$elmt.css("padding-bottom")).css("padding-left",this.$elmt.css("padding-left")).css("padding-right",this.$elmt.css("padding-right")),t[0].innerHTML=this.elmt.innerHTML,this.elmt.innerHTML=""),l&&this.support.transition&&(e=s('<div class="vegas-timer"><div class="vegas-timer-progress">'),this.$timer=e,this.$elmt.prepend(e)),h&&(i=s('<div class="vegas-overlay">'),"string"==typeof h&&i.css("background-image","url("+h+")"),this.$overlay=i,this.$elmt.prepend(i)),this.$elmt.addClass("vegas-container"),a||("static"===d&&this.$elmt.css("position","relative"),this.$elmt.append(t)),this.trigger("init"),this._goto(this.slide)},_slideShow:function(){var s=this;this.paused||this.noshow?clearTimeout(this.timeout):this.timeout=setTimeout(function(){s.next()},this._options("delay"))},_timer:function(s){var t=this;clearTimeout(this.timeout),!this.$timer||this.paused||this.noshow||(this.$timer.removeClass("vegas-timer-running").find("div").css("transition-duration","0ms"),s&&setTimeout(function(){t.$timer.addClass("vegas-timer-running").find("div").css("transition-duration",t._options("delay")-100+"ms")},100))},_options:function(s,t){return void 0===t&&(t=this.slide),void 0!==this.settings.slides[t][s]?this.settings.slides[t][s]:this.settings[s]},_goto:function(t){function i(){r._timer(!0),setTimeout(function(){r.support.transition&&l.css("transition","all "+u+"ms").addClass("vegas-transition-"+y+"-out"),e.css("transition","all "+u+"ms").addClass("vegas-transition-"+y+"-in"),r.support.transition||e.fadeIn(u),l.length>=2&&l.eq(0).remove(),r.trigger("walk"),r._slideShow()},100)}this.slide=t;var e,n,o,a,l=this.$elmt.children(".vegas-slide"),h=l.length,r=this,d=this.settings.slides[t].src,c=this.settings.slides[t].video,g=this._options("delay"),u=this._options("transitionDelay"),p=this._options("align"),f=this._options("valign"),m=this._options("color")||this.$elmt.css("background-color"),v=this._options("fill")?"cover":"contain",y=this._options("transition"),$="random"===y;$&&(y=this.transitions[Math.floor(Math.random()*(this.transitions.length-1))]),"none"!==y&&this.transitions.indexOf(y)<0&&console.error("Vegas: Transition "+y+" doesn't exist."),u>g&&(u=g),this.support.video&&c?(c instanceof Array==!1&&(c=[c]),n=document.createElement("video"),n.muted=!0,n.loop=!0,n.autoplay=!0,c.forEach(function(s){o=document.createElement("source"),o.src=s,n.appendChild(o)}),e=s(n).addClass("vegas-video").addClass("vegas-slide").addClass("vegas-transition-"+y).css("background-color",m),this.support.objectFit?e.css("object-position",p+" "+f).css("object-fit",v).css("width","100%").css("height","100%"):"contain"===v&&e.css("width","100%").css("height","100%")):(a=new Image,a.src=d,e=s("<div></div>").addClass("vegas-slide").addClass("vegas-transition-"+y).css("background-image","url("+d+")").css("background-color",m).css("background-position",p+" "+f).css("background-size",v)),r.support.transition||e.css("display","none"),h?l.eq(h-1).after(e):this.$elmt.prepend(e),l.css("transition","all 0ms").each(function(){this.className=" vegas-slide",this.className+=" vegas-transition-"+y,this.className+=" vegas-transition-"+y+"-in",n&&(this.className+=" vegas-video")}),r._timer(!1),n?(n.play(),n.oncanplay=i):a.onload=i},shuffle:function(){for(var s,t,i=this.total-1;i>0;i--)t=Math.floor(Math.random()*(i+1)),s=this.settings.slides[i],this.settings.slides[i]=this.settings.slides[t],this.settings.slides[t]=s},play:function(){this.paused&&(this.paused=!1,this.next(),this.trigger("play"))},pause:function(){this._timer(!1),this.paused=!0,this.trigger("pause")},toggle:function(){this.paused?this.play():this.pause()},playing:function(){return!this.paused&&!this.noshow},current:function(s){return s?{slide:this.slide,data:this.settings.slides[this.slide]}:this.slide},jump:function(s){0>s||s>this.total-1||s===this.slide||(this.slide=s,this._goto(this.slide))},next:function(){this.slide++,this.slide>=this.total&&(this.slide=0),this._goto(this.slide)},previous:function(){this.slide--,this.slide<0&&(this.slide=this.total-1),this._goto(this.slide)},trigger:function(s){var t=[];"init"!==s&&(t=[this.slide,this.settings.slides[this.slide]]),this.$elmt.trigger("vegas"+s,t),"function"==typeof this.settings[s]&&this.settings[s].apply(this.$elmt,t)},options:function(s,t){if("string"==typeof s){if(void 0===t)return this.settings[s];this.settings[s]=t}else{if("object"!=typeof s)return this.settings;this.settings=s}}},s.fn.vegas=function(s){var t,e=arguments,n=!1;if(void 0===s||"object"==typeof s)return this.each(function(){this._vegas||(this._vegas=new i(this,s))});if("string"==typeof s){if(this.each(function(){var i=this._vegas;if(!i)throw new Error("No Vegas applied to this element.");"function"==typeof i[s]&&"_"!==s[0]?t=i[s].apply(i,[].slice.call(e,1)):n=!0}),n)throw new Error('No method "'+s+'" in Vegas.');return void 0!==t?t:this}},s.vegas={},s.vegas.defaults=t,s.vegas.isVideoCompatible=function(){return!("ontouchstart"in window||"onmsgesturechange"in window)}}("undefined"!=typeof jQuery?jQuery:"undefined"!=typeof Zepto?Zepto:"undefined"!=typeof Pin?Pin:null);
  11. //# sourceMappingURL=vegas.min.js.map