(function($){ $.fn.wmuslider = function(options){ var defaults = { animation: "fade", animationduration: 600, slideshow: true, slideshowspeed: 3000, slidetostart: 0, navigationcontrol: true, paginationcontrol: true, previoustext: "previous", nexttext: "next", touch: false, slide: ".slider_img", items: 1}; var options = $.extend(defaults, options); return this.each(function(){ var $this = $(this); var currentindex = options.slidetostart; var wrapper = $this.find(".wmuslider"); var slides = $this.find(options.slide); var slidescount = slides.length; var slideshowtimeout; var paginationcontrol; var isanimating; var loadslide = function(index, infinite){ if (isanimating){ return false} isanimating = true; currentindex = index; var slide = $(slides[index]); $this.animate({ height: slide.innerheight()}); if (options.animation == "fade"){ slides.css({position: "absolute", opacity: 0}); slide.css("position", "relative"); slide.animate({opacity: 1 },options.animationduration, function(){isanimating = false}) }else{if (options.animation == "slide"){ if (!infinite){wrapper.animate({ marginleft: -$this.width() / options.items * index },options.animationduration, function(){isanimating = false })}else{if (index == 0){wrapper.animate({ marginleft: -$this.width() / options.items * slidescount },options.animationduration, function(){wrapper.css("marginleft", 0); isanimating = false })}else{wrapper.animate({ marginleft: -$this.width() / options.items * index}, options.animationduration, function(){isanimating = false})}}}} if (paginationcontrol){ paginationcontrol.find("a").each(function(i){ if (i == index){$(this).addclass("wmuactive") }else{$(this).removeclass("wmuactive")}})} $this.trigger("slideloaded", index)}; if (options.navigationcontrol){ var prev = $('' + options.previoustext + ''); prev.click(function(e){ e.preventdefault(); cleartimeout(slideshowtimeout); if (currentindex == 0){ loadslide(slidescount - 1, true); }else{loadslide(currentindex - 1);}}); $this.append(prev); var next = $('' + options.nexttext + ''); next.click(function(e){ e.preventdefault(); cleartimeout(slideshowtimeout); if (currentindex + 1 == slidescount){ loadslide(0, true); }else{loadslide(currentindex + 1); }});$this.append(next);}; if (options.paginationcontrol){ paginationcontrol = $('
'); if (slides.size() > 1){ $.each(slides,function(i){ paginationcontrol.children().append('
  • ' + i + "
  • "); paginationcontrol.children().find("a:eq(" + i + ")").click(function(e){ e.preventdefault(); cleartimeout(slideshowtimeout); loadslide(i)})}); $this.append(paginationcontrol)}} if (options.slideshow){ if (slides.size() > 1){ var slideshow = function(){ if (currentindex + 1 < slidescount){ loadslide(currentindex + 1) }else{loadslide(0, true)} slideshowtimeout = settimeout(slideshow, options.slideshowspeed)}; slideshowtimeout = settimeout(slideshow, options.slideshowspeed)}} var resize = function(){ var slide = $(slides[currentindex]); $this.animate({height: slide.innerheight()}); if (options.animation == "slide"){ slides.css({width: $this.width() / options.items}); wrapper.css({marginleft: -$this.width() / options.items * currentindex, width: $this.width() * slides.length})}}; var init = function(){ var slide = $(slides[currentindex]); var img = slide.find("img"); img.load(function(){ wrapper.show(); $this.animate({height: slide.innerheight()})}); if (options.animation == "fade"){ slides.css({position: "absolute", width: "100%",opacity: 0}); $(slides[currentindex]).css("position", "relative") }else{if (options.animation == "slide"){ if (options.items > slidescount){ options.items = slidescount} slides.css("float", "left"); slides.each(function(i){ var slide = $(this); slide.attr("data-index", i)}); for (var i = 0; i < options.items; i++){ wrapper.append($(slides[i]).clone())} slides = $this.find(options.slide)}} resize(); $this.trigger("hasloaded"); loadslide(currentindex)}; init(); $(window).resize(resize); $this.bind("loadslide", function(e, i){ cleartimeout(slideshowtimeout); loadslide(i)})})}})(jquery); $(".example1").wmuslider();