vegas.min.js 8.4 KB

1234567891011
  1. /*!-----------------------------------------------------------------------------
  2. * Vegas - Fullscreen Backgrounds and Slideshows.
  3. * v2.0.0-wip - built 2015-02-19
  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(t){"use strict";var s={slide:0,delay:5e3,preload:!1,preloadImage:!1,preloadVideo:!1,timer:!0,overlay:!1,autoplay:!0,shuffle:!1,cover:!0,color:null,align:"center",valign:"center",transition:"fade",transitionDuration:1e3,animation:null,animationDuration:"auto",init:function(){},play:function(){},pause:function(){},walk:function(){},slides:[]},i={},e=function(i,e){this.elmt=i,this.settings=t.extend({},s,t.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=t(i),this.$timer=null,this.$overlay=null,this.$slide=null,this.timeout=null,this.transitions=[],this.animations=[],this.support={objectFit:"objectFit"in document.body.style,transition:"transition"in document.body.style||"WebkitTransition"in document.body.style,video:t.vegas.isVideoCompatible()};for(var n=0;n<document.styleSheets.length;n++){var o,a=document.styleSheets[n];try{o=a.cssRules||a.rules}catch(r){continue}if(/vegas(\..*?)?(\.min)?\.css$/.test(a.href))for(var h=0;h<o.length;h++){var d=o[h],l=/vegas\-transition\-([a-z0-9]*)/gi.exec(d.selectorText),g=/vegas\-animation\-([a-z0-9]*)/gi.exec(d.selectorText);l&&l[1]&&-1===this.transitions.indexOf(l[1])&&this.transitions.push(l[1]),g&&g[1]&&-1===this.animations.indexOf(g[1])&&this.animations.push(g[1])}}this.settings.shuffle===!0&&this.shuffle(),this._init()};e.prototype={_init:function(){var s,i,e,n="BODY"===this.elmt.tagName,o=this.settings.timer,a=this.settings.overlay;this._preload(),n||(this.$elmt.css("height",this.$elmt.css("height")),s=t('<div class="vegas-wrapper">').css("overflow",this.$elmt.css("overflow")).css("padding",this.$elmt.css("padding")),this.$elmt.css("padding")||s.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")),this.$elmt.clone(!0).children().appendTo(s),this.elmt.innerHTML=""),o&&this.support.transition&&(e=t('<div class="vegas-timer"><div class="vegas-timer-progress">'),this.$timer=e,this.$elmt.prepend(e)),a&&(i=t('<div class="vegas-overlay">'),"string"==typeof a&&i.css("background-image","url("+a+")"),this.$overlay=i,this.$elmt.prepend(i)),this.$elmt.addClass("vegas-container"),n||this.$elmt.append(s),this.trigger("init"),this._goto(this.slide)},_preload:function(){var t,s,e;for(e=0;e<this.settings.slides.length;e++)(this.settings.preload||this.settings.preloadImages)&&this.settings.slides[e].src&&(s=new Image,s.src=this.settings.slides[e].src),(this.settings.preload||this.settings.preloadVideos)&&this.support.video&&this.settings.slides[e].video&&(t=this._video(this.settings.slides[e].video),t.preload=!0,t.muted=!0,i[this.settings.slides[e].video.toString()]=t)},_slideShow:function(){var t=this;this.total>1&&!this.paused&&!this.noshow&&(this.timeout=setTimeout(function(){t.next()},this._options("delay")))},_timer:function(t){var s=this;clearTimeout(this.timeout),this.$timer&&(this.$timer.removeClass("vegas-timer-running").find("div").css("transition-duration","0ms"),this.paused||this.noshow||t&&setTimeout(function(){s.$timer.addClass("vegas-timer-running").find("div").css("transition-duration",s._options("delay")-100+"ms")},100))},_video:function(t){var s,e;return i[t.toString()]?i[t.toString()]:(t instanceof Array==!1&&(t=[t]),s=document.createElement("video"),t.forEach(function(t){e=document.createElement("source"),e.src=t,s.appendChild(e)}),s)},_options:function(t,s){return void 0===s&&(s=this.slide),void 0!==this.settings.slides[s][t]?this.settings.slides[s][t]:this.settings[t]},_goto:function(s){function i(){r._timer(!0),setTimeout(function(){r.support.transition&&h.css("transition","all "+y+"ms").addClass("vegas-transition-"+f+"-out"),e.css("transition","all "+y+"ms").addClass("vegas-transition-"+f+"-in"),r.support.transition||e.fadeIn(y);for(var t=0;t<h.length-1;t++)h.eq(t).remove();r.trigger("walk"),r._slideShow()},100)}"undefined"==typeof this.settings.slides[s]&&(s=0),this.slide=s;var e,n,o,a,r=this,h=this.$elmt.children(".vegas-slide"),d=this.settings.slides[s].src,l=this.settings.slides[s].video,g=this._options("delay"),c=this._options("align"),u=this._options("valign"),p=this._options("color")||this.$elmt.css("background-color"),m=this._options("cover")?"cover":"contain",v=h.length,f=this._options("transition"),y=this._options("transitionDuration"),_=this._options("animation"),$=this._options("animationDuration");"random"===f&&(f=this.transitions[Math.floor(Math.random()*(this.transitions.length-1))]),f&&"none"!==f&&this.transitions.indexOf(f)<0&&console.error("Vegas: Transition "+f+" doesn't exist."),("auto"===y||y>g)&&(y=g),"random"===_&&(_=this.animations[Math.floor(Math.random()*(this.animations.length-1))]),_&&"none"!==_&&this.animations.indexOf(_)<0&&console.error("Vegas: Animation "+_+" doesn't exist."),"auto"===$&&($=g),this.support.video&&l?(o=this._video(l),e=t(o).addClass("vegas-video").addClass("vegas-slide").addClass("vegas-transition-"+f).css("background-color",p),this.support.objectFit?e.css("object-position",c+" "+u).css("object-fit",m).css("width","100%").css("height","100%"):"contain"===m&&e.css("width","100%").css("height","100%")):(a=new Image,e=t("<div></div>").addClass("vegas-slide").addClass("vegas-transition-"+f),n=t("<div></div>").addClass("vegas-slide-inner").css("background-image","url("+d+")").css("background-color",p).css("background-position",c+" "+u).css("background-size",m),_&&n.addClass("vegas-animation-"+_).css("animation-duration",$+"ms"),e.append(n)),r.support.transition||e.css("display","none"),v?h.eq(v-1).after(e):this.$elmt.prepend(e),h.css("transition","all 0ms").each(function(){this.className=" vegas-slide",this.className+=" vegas-transition-"+f,this.className+=" vegas-transition-"+f+"-in","VIDEO"===this.tagName&&(this.className+=" vegas-video")}),r._timer(!1),o?4===o.readyState?(o.currentTime=0,o.play(),i()):o.oncanplay=function(){o.play(),o._started||(o._started=!0,i())}:(a.src=d,a.onload=i)},shuffle:function(){for(var t,s,i=this.total-1;i>0;i--)s=Math.floor(Math.random()*(i+1)),t=this.settings.slides[i],this.settings.slides[i]=this.settings.slides[s],this.settings.slides[s]=t},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(t){return t?{slide:this.slide,data:this.settings.slides[this.slide]}:this.slide},jump:function(t){0>t||t>this.total-1||t===this.slide||(this.slide=t,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(t){var s=[];"init"!==t&&(s=[this.slide,this.settings.slides[this.slide]]),this.$elmt.trigger("vegas"+t,s),"function"==typeof this.settings[t]&&this.settings[t].apply(this.$elmt,s)},options:function(i,e){var n=this.settings.slides;if("object"==typeof i)this.settings=t.extend({},s,t.vegas.defaults,i);else{if("string"!=typeof i)return this.settings;if(void 0===e)return this.settings[i];this.settings[i]=e}this.settings.slides!==n&&(this.total=this.settings.slides.length,this.noshow=this.total<2,this._preload())}},t.fn.vegas=function(t){var s,i=arguments,n=!1;if(void 0===t||"object"==typeof t)return this.each(function(){this._vegas||(this._vegas=new e(this,t))});if("string"==typeof t){if(this.each(function(){var e=this._vegas;if(!e)throw new Error("No Vegas applied to this element.");"function"==typeof e[t]&&"_"!==t[0]?s=e[t].apply(e,[].slice.call(i,1)):n=!0}),n)throw new Error('No method "'+t+'" in Vegas.');return void 0!==s?s:this}},t.vegas={},t.vegas.defaults=s,t.vegas.isVideoCompatible=function(){return!/(Android|webOS|Phone|iPad|iPod|BlackBerry|Windows Phone)/i.test(navigator.userAgent)}}("undefined"!=typeof jQuery?jQuery:"undefined"!=typeof Zepto?Zepto:null);
  11. //# sourceMappingURL=vegas.min.js.map