Files
sls/vegas/js/vegas.min.js
2024-12-10 11:05:29 +01:00

12 lines
10 KiB
JavaScript
Executable File

/*!-----------------------------------------------------------------------------
* Vegas - Fullscreen Backgrounds and Slideshows.
* v2.6.0 - built 2024-07-30
* Licensed under the MIT License.
* http://vegas.jaysalvat.com/
* ----------------------------------------------------------------------------
* Copyright (C) 2010-2024 Jay Salvat
* http://jaysalvat.com/
* --------------------------------------------------------------------------*/
!function(y){"use strict";function t(t,s){this.elmt=t,this.settings=y.extend({},e,y.vegas.defaults,s),this.slide=this.settings.slide,this.total=this.settings.slides.length,this.noshow=this.total<2,this.paused=!this.settings.autoplay||this.noshow,this.ended=!1,this.$elmt=y(t),this.$timer=null,this.$overlay=null,this.$slide=null,this.timeout=null,this.first=!0,this.instance=i++,this.transitions=["fade","fade2","blur","blur2","flash","flash2","negative","negative2","burn","burn2","slideLeft","slideLeft2","slideRight","slideRight2","slideUp","slideUp2","slideDown","slideDown2","zoomIn","zoomIn2","zoomOut","zoomOut2","swirlLeft","swirlLeft2","swirlRight","swirlRight2"],this.animations=["kenburns","kenburnsLeft","kenburnsRight","kenburnsUp","kenburnsUpLeft","kenburnsUpRight","kenburnsDown","kenburnsDownLeft","kenburnsDownRight"],this.settings.transitionRegister instanceof Array||(this.settings.transitionRegister=[this.settings.transitionRegister]),this.settings.animationRegister instanceof Array||(this.settings.animationRegister=[this.settings.animationRegister]),this.transitions=this.transitions.concat(this.settings.transitionRegister),this.animations=this.animations.concat(this.settings.animationRegister),this.support={objectFit:"objectFit"in document.body.style,transition:"transition"in document.body.style||"WebkitTransition"in document.body.style},!0===this.settings.shuffle&&this.shuffle(),this._init()}var e={slide:0,delay:5e3,loop:!0,preload:!1,preloadImage:!1,preloadVideo:!1,timer:!0,overlay:!1,autoplay:!0,shuffle:!1,cover:!0,color:null,align:"center",valign:"center",firstTransition:null,firstTransitionDuration:null,transition:"fade",transitionDuration:1e3,transitionRegister:[],animation:null,animationDuration:"auto",animationRegister:[],slidesToKeep:1,init:function(){},play:function(){},pause:function(){},walk:function(){},slides:[]},n={},i=0;t.prototype={_init:function(){var t,s,i="BODY"===this.elmt.tagName,e=this.settings.timer,n=this.settings.overlay,o=this;this._preload(),i||(s=y('<div class="vegas-content-scrollable">'),t=y('<div class="vegas-content">').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")),this.$elmt.css("padding",0),this.$elmt.clone(!0).children().appendTo(t),this.elmt.innerHTML=""),e&&this.support.transition&&(e=y('<div class="vegas-timer"><div class="vegas-timer-progress">'),this.$timer=e,this.$elmt.prepend(e)),n&&(e=y('<div class="vegas-overlay">'),"string"==typeof n&&e.css("background-image","url("+n+")"),this.$overlay=e,this.$elmt.prepend(e)),this.$elmt.addClass("vegas-container"),i||(this.$elmt.append(s),s.append(t)),setTimeout(function(){o.trigger("init"),o._goto(o.slide),o.settings.autoplay&&o.trigger("play")},1)},_preload:function(){for(var t=0;t<this.settings.slides.length;t++)(this.settings.preload||this.settings.preloadImages)&&this.settings.slides[t].src&&((new Image).src=this.settings.slides[t].src),(this.settings.preload||this.settings.preloadVideos)&&this.settings.slides[t].video&&(this.settings.slides[t].video instanceof Array?this._video(this.settings.slides[t].video):this._video(this.settings.slides[t].video.src))},_random:function(t){return t[Math.floor(Math.random()*t.length)]},_slideShow:function(){var t=this;1<this.total&&!this.ended&&!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.ended||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,i,e=this.instance+t.toString();return n[e]||(t instanceof Array||(t=[t]),(s=document.createElement("video")).preload=!0,s.playsInline=!0,s.controls=!1,t.forEach(function(t){(i=document.createElement("source")).src=t,s.appendChild(i)}),n[e]=s)},_fadeOutSound:function(t,s){var i=this,e=s/10,n=t.volume-.09;0<n?(t.volume=n,setTimeout(function(){i._fadeOutSound(t,s)},e)):t.pause()},_fadeInSound:function(t,s){var i=this,e=s/10,n=t.volume+.09;n<1&&(t.volume=n,setTimeout(function(){i._fadeInSound(t,s)},e))},_options:function(t,s){return void 0===s&&(s=this.slide),(void 0!==this.settings.slides[s][t]?this.settings.slides[s]:this.settings)[t]},_goto:function(t){void 0===this.settings.slides[t]&&(t=0),this.slide=t;var s,i,e,n=this.$elmt.children(".vegas-slide"),o=this.settings.slides[t].src,t=this.settings.slides[t].video,a=this._options("delay"),r=this._options("align"),h=this._options("valign"),l=this._options("cover"),d=this._options("color")||this.$elmt.css("background-color"),g=this,u=n.length,c=this._options("transition"),p=this._options("transitionDuration"),m=this._options("animation"),f=this._options("animationDuration");function v(){g._timer(!0),setTimeout(function(){c&&(g.support.transition?(n.css("transition","all "+p+"ms").addClass("vegas-transition-"+c+"-out"),n.each(function(){var t=n.find("video").get(0);t&&(t.volume=1,g._fadeOutSound(t,p))}),s.css("transition","all "+p+"ms").addClass("vegas-transition-"+c+"-in")):s.fadeIn(p));for(var t=0;t<n.length-g.settings.slidesToKeep;t++)n.eq(t).remove();g.trigger("walk"),g._slideShow()},100)}this.settings.firstTransition&&this.first&&(c=this.settings.firstTransition||c),this.settings.firstTransitionDuration&&this.first&&(p=this.settings.firstTransitionDuration||p),this.first&&(this.first=!1),"repeat"!==l&&(!0===l?l="cover":!1===l&&(l="contain")),("random"===c||c instanceof Array)&&(c=c instanceof Array?this._random(c):this._random(this.transitions)),("random"===m||m instanceof Array)&&(m=m instanceof Array?this._random(m):this._random(this.animations)),("auto"===p||a<p)&&(p=a),"auto"===f&&(f=a),s=y('<div class="vegas-slide"></div>'),this.support.transition&&c&&s.addClass("vegas-transition-"+c),t?((i=t instanceof Array?this._video(t):this._video(t.src)).loop=void 0===t.loop||t.loop,i.muted=void 0===t.muted||t.muted,!1===i.muted?(i.volume=0,this._fadeInSound(i,p)):i.pause(),a=y(i).addClass("vegas-video").css("background-color",d),this.support.objectFit?a.css("object-position",r+" "+h).css("object-fit",l).css("width","100%").css("height","100%"):"contain"===l&&a.css("width","100%").css("height","100%"),s.append(a)):(e=new Image,t=y('<div class="vegas-slide-inner"></div>').css("background-image",'url("'+o+'")').css("background-color",d).css("background-position",r+" "+h),"repeat"===l?t.css("background-repeat","repeat"):t.css("background-size",l),this.support.transition&&m&&t.addClass("vegas-animation-"+m).css("animation-duration",f+"ms"),s.append(t)),this.support.transition||s.css("display","none"),u?n.eq(u-1).after(s):this.$elmt.prepend(s),n.css("transition","all 0ms").each(function(){this.className="vegas-slide","VIDEO"===this.tagName&&(this.className+=" vegas-video"),c&&(this.className+=" vegas-transition-"+c,this.className+=" vegas-transition-"+c+"-in")}),g._timer(!1),i?(4===i.readyState&&(i.currentTime=0),i.play(),v()):(e.src=o,e.complete?v():e.onload=v)},_end:function(){this.ended=!this.settings.autoplay,this._timer(!1),this.trigger("end")},shuffle:function(){for(var t,s,i=this.total-1;0<i;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){t<0||t>this.total-1||t===this.slide||(this.slide=t,this._goto(this.slide))},next:function(){if(this.slide++,this.slide>=this.total){if(!this.settings.loop)return this._end();this.slide=0}this._goto(this.slide)},previous:function(){if(this.slide--,this.slide<0){if(!this.settings.loop)return void this.slide++;this.slide=this.total-1}this._goto(this.slide)},trigger:function(t){var s=[],s="init"===t?[this.settings]:[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(t,s){var i=this.settings.slides.slice();if("object"==typeof t)this.settings=y.extend({},e,y.vegas.defaults,t);else{if("string"!=typeof t)return this.settings;if(void 0===s)return this.settings[t];this.settings[t]=s}this.settings.slides!==i&&(this.total=this.settings.slides.length,this.noshow=this.total<2,this._preload())},destroy:function(){clearTimeout(this.timeout),this.$elmt.removeClass("vegas-container"),this.$elmt.find("> .vegas-slide").remove(),this.$elmt.find("> .vegas-wrapper").clone(!0).children().appendTo(this.$elmt),this.$elmt.find("> .vegas-wrapper").remove(),this.settings.timer&&this.$timer.remove(),this.settings.overlay&&this.$overlay.remove(),this.elmt._vegas=null}},y.fn.vegas=function(s){var i,e=arguments,n=!1;if(void 0===s||"object"==typeof s)return this.each(function(){this._vegas||(this._vegas=new t(this,s))});if("string"==typeof s){if(this.each(function(){var t=this._vegas;if(!t)throw new Error("No Vegas applied to this element.");"function"==typeof t[s]&&"_"!==s[0]?i=t[s].apply(t,[].slice.call(e,1)):n=!0}),n)throw new Error('No method "'+s+'" in Vegas.');return void 0!==i?i:this}},y.vegas={},y.vegas.defaults=e,y.vegas.isVideoCompatible=function(){return!0}}(window.jQuery||window.Zepto||window.m4q);
//# sourceMappingURL=vegas.min.js.map