You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1 lines
5.2 KiB

(function(a){a.fn.bgSlideShow=function(b){var c=Math.floor;function d(a,b){return void 0===a?b:"boolean"==typeof a?a:(a=a.trim().toLowerCase(),a.startsWith("t")||a.startsWith("y")||1==a)}function e(b,c){var e={};return e.uniqueId=k(b),e.current=a(b).data("current")||c.current||0,e.images=c.images,e.slideControls=c.slideControls,e.slideControls.enabled=d(a(b).data("slidecontrols.enabled"),c.slideControls.enabled),e.slideControls.classes=a(b).data("slidecontrols.classes")||c.slideControls.classes,a(b).data("images")&&(e.images=a(b).data("images").split(",").map(a=>a.trim())),e.initialBackground=a(b).data("initialbackground")||c.initialBackground,e.transitionDelay=a(b).data("transitiondelay")||c.transitionDelay,e.gradient=a(b).data("gradient")||c.gradient,e.transitionSpeed=a(b).data("transitionspeed")||c.transitionSpeed,e.transitionEffect=a(b).data("transitioneffect")||c.transitionEffect,e.randomize=d(a(b).data("randomize"),c.randomize),e.debug=d(a(b).data("debug"),c.debug),e.eventHandlers=c.eventHandlers,e.defaultDisplay=a(b).css("display")||"block",e}function f(a,b){a&&console.log(b)}function g(a){if(a.randomize){for(var b=a.current;b==a.current;)b=c(Math.random()*a.images.length);return a.current=b,a.images[b]}a.current>=a.images.length&&(a.current=0);var d=a.images[a.current];return++a.current,d}function h(b,c){f(c.debug,"ProcessShow with element ["+b+"]"),a(b).data("bgSlideShowApplied",!0),m(b,c),q(c.images),c.wrapBgElement=a("<div/>",{class:"jquery-bg-slideshow-wrap-bg-element",id:c.uniqueId+"-wrap-widget"}),a(b).wrap(c.wrapBgElement);var d=a(b).css("position","absolute");j(b,d.parent(),c),f(c.debug,"Setting timeout for element ["+b+"]"),p(c,c.current),c.timerId=setTimeout(n,c.transitionDelay,b,c)}function j(b,c,d){if(f(d.debug,"List controls enabled: "+d.slideControls.enabled),!0==d.slideControls.enabled){d.slideControlsElement=a("<div/>",{class:"jquery-bg-slideshow-list-control-element"+(d.slideControls.classes?" "+d.slideControls.classes:"")});for(var e,g=d.images.length,h=0;h<g;h++)e=d.uniqueId+"-image"+h,a("<div/>",{class:"jquery-bg-slideshow-list-control-image-element",id:e}).appendTo(d.slideControlsElement);a(c).append(d.slideControlsElement),a("[id^='"+d.uniqueId+"-image']").off("click").on("click",function(){a(d.cloned).remove();var c=a(this).attr("id"),e=parseInt(c.match(/-image(\d+)/)[1]);d.current=e+1,a(b).css("background","url("+d.images[e]+")"),p(d,d.current-1),console.log("clicked on ["+a(this).attr("id")+"]")})}}function k(b){var c=a(b).attr("id");return c||(c=l()),c}function l(){var a="ABCDEFGHIJKLMNOPQRSTUVWXYZ".charAt(c(Math.random()*"ABCDEFGHIJKLMNOPQRSTUVWXYZ".length))+Date.now();return a}function m(b,c){if(c.initialBackground){f(c.debug,"Setting initial image");var d=c.initialBackground,e="";if(!isNaN(d)&&d<c.images.length)e=c.images[d],c.current=d+1;else if("random"==d.toLowerCase()){var h=c.randomize;c.randomize=!0,e=g(c),c.randomize=h}else e=c.initialBackground;c.gradient?a(b).css("background",c.gradient+", url("+e+") center center/cover no-repeat fixed"):a(b).css("background","url("+e+") center center/cover no-repeat fixed")}}function n(a,b){f(b.debug,"Calling timer for element ["+a+"]");var c=g(b);o(a,b,c)}function o(b,c,d){c.eventHandlers.beforeChange&&c.eventHandlers.beforeChange(b,c,d),a(c.cloned).length&&a(c.cloned).remove(),c.cloned=a(b).clone(),c.gradient?a(c.cloned).addClass("jquery-bg-slideshow-cloned").css({background:c.gradient+", url("+d+") center center/cover no-repeat fixed"}).insertAfter(a(b)):a(c.cloned).addClass("jquery-bg-slideshow-cloned").css({background:"url("+d+") center center/cover no-repeat fixed"}).insertAfter(a(b)),a(c.cloned).addClass("jquery-bg-slideshow-cloned").css({background:c.gradient+", url("+d+") center center/cover no-repeat fixed"}).insertAfter(a(b)),a(c.cloned).css("display",c.defaultDisplay),f(c.debug,"Before element fadeout"),a(b).stop().fadeOut(c.transitionSpeed,function(){f(c.debug,"Fading out is done - should remove cloned element"),c.gradient?a(this).css({background:c.gradient+", url("+d+") center center/cover no-repeat fixed",position:"absolute",display:c.defaultDisplay}):a(this).css({background:"url("+d+") center center/cover no-repeat fixed",position:"absolute",display:c.defaultDisplay}),c.eventHandlers.afterChange&&c.eventHandlers.afterChange(b,c,d),p(c,c.current),c.timerId=setTimeout(n,c.transitionDelay,b,c)})}function p(b,c){if(b.slideControls.enabled){var d="#"+b.uniqueId+"-image"+c;a("[id^='"+b.uniqueId+"-image']").removeClass("jquery-bg-slideshow-list-control-image-active-element"),a(d).addClass("jquery-bg-slideshow-list-control-image-active-element")}}function q(a){for(i=0;i<a.length;i++){var b=q.length;r[b]=new Image,r[b].src=a[i]}}var r=[],s=a.extend({current:-1,images:[],transitionDelay:5e3,transitionSpeed:3e3,transitionEffect:"fade-in",gradient:null,randomize:!1,initialBackground:null,debug:!1,eventHandlers:{beforeInit:null,afterInit:null,beforeChange:null,afterChange:null},slideControls:{enabled:!0,classes:null}},b);return this.each(function(a,b){var c=e(this,s);c.eventHandlers.beforeInit&&c.eventHandlers.beforeInit(this,c),h(this,c),c.eventHandlers.afterInit&&c.eventHandlers.afterInit(this,c),f(c.debug,"Done processing element ["+b+"] number ["+a+"]")})},a.fn.bgSlideshowApplied=function(){return!(!0!=a(this).data("bgSlideShowApplied"))}})(jQuery);