Template:Team:Marburg/Template:JSlider.js

From 2014.igem.org

(Difference between revisions)
(Created page with "/* SlidesJS 3.0.4 http://slidesjs.com (c) 2013 by Nathan Searles http://nathansearles.com Updated: June 26th, 2013 Apache License: http://www.apache.org/licenses/LICENSE-...")
 
Line 1: Line 1:
-
/*
+
// Generated by CoffeeScript 1.6.1
-
   SlidesJS 3.0.4 http://slidesjs.com
+
(function() {
-
  (c) 2013 by Nathan Searles http://nathansearles.com
+
 
-
  Updated: June 26th, 2013
+
   (function($, window, document) {
-
  Apache License: http://www.apache.org/licenses/LICENSE-2.0
+
    var Plugin, defaults, pluginName;
-
*/
+
    pluginName = "slidesjs";
-
(function(){(function(e,t,n){var r,i,s;s="slidesjs";i={width:940,height:528,start:1,navigation:{active:!0,effect:"slide"},pagination:{active:!0,effect:"slide"},play:{active:!1,effect:"slide",interval:5e3,auto:!1,swap:!0,pauseOnHover:!1,restartDelay:2500},effect:{slide:{speed:500},fade:{speed:300,crossfade:!0}},callback:{loaded:function(){},start:function(){},complete:function(){}}};r=function(){function t(t,n){this.element=t;this.options=e.extend(!0,{},i,n);this._defaults=i;this._name=s;this.init()}return t}();r.prototype.init=function(){var n,r,i,s,o,u,a=this;n=e(this.element);this.data=e.data(this);e.data(this,"animating",!1);e.data(this,"total",n.children().not(".slidesjs-navigation",n).length);e.data(this,"current",this.options.start-1);e.data(this,"vendorPrefix",this._getVendorPrefix());if(typeof TouchEvent!="undefined"){e.data(this,"touch",!0);this.options.effect.slide.speed=this.options.effect.slide.speed/2}n.css({overflow:"hidden"});n.slidesContainer=n.children().not(".slidesjs-navigation",n).wrapAll("<div class='slidesjs-container'>",n).parent().css({overflow:"hidden",position:"relative"});e(".slidesjs-container",n).wrapInner("<div class='slidesjs-control'>",n).children();e(".slidesjs-control",n).css({position:"relative",left:0});e(".slidesjs-control",n).children().addClass("slidesjs-slide").css({position:"absolute",top:0,left:0,width:"100%",zIndex:0,display:"none",webkitBackfaceVisibility:"hidden"});e.each(e(".slidesjs-control",n).children(),function(t){var n;n=e(this);return n.attr("slidesjs-index",t)});if(this.data.touch){e(".slidesjs-control",n).on("touchstart",function(e){return a._touchstart(e)});e(".slidesjs-control",n).on("touchmove",function(e){return a._touchmove(e)});e(".slidesjs-control",n).on("touchend",function(e){return a._touchend(e)})}n.fadeIn(0);this.update();this.data.touch&&this._setuptouch();e(".slidesjs-control",n).children(":eq("+this.data.current+")").eq(0).fadeIn(0,function(){return e(this).css({zIndex:10})});if(this.options.navigation.active){o=e("<a>",{"class":"slidesjs-previous slidesjs-navigation",href:"#",title:"Previous",text:"Previous"}).appendTo(n);r=e("<a>",{"class":"slidesjs-next slidesjs-navigation",href:"#",title:"Next",text:"Next"}).appendTo(n)}e(".slidesjs-next",n).click(function(e){e.preventDefault();a.stop(!0);return a.next(a.options.navigation.effect)});e(".slidesjs-previous",n).click(function(e){e.preventDefault();a.stop(!0);return a.previous(a.options.navigation.effect)});if(this.options.play.active){s=e("<a>",{"class":"slidesjs-play slidesjs-navigation",href:"#",title:"Play",text:"Play"}).appendTo(n);u=e("<a>",{"class":"slidesjs-stop slidesjs-navigation",href:"#",title:"Stop",text:"Stop"}).appendTo(n);s.click(function(e){e.preventDefault();return a.play(!0)});u.click(function(e){e.preventDefault();return a.stop(!0)});this.options.play.swap&&u.css({display:"none"})}if(this.options.pagination.active){i=e("<ul>",{"class":"slidesjs-pagination"}).appendTo(n);e.each(new Array(this.data.total),function(t){var n,r;n=e("<li>",{"class":"slidesjs-pagination-item"}).appendTo(i);r=e("<a>",{href:"#","data-slidesjs-item":t,html:t+1}).appendTo(n);return r.click(function(t){t.preventDefault();a.stop(!0);return a.goto(e(t.currentTarget).attr("data-slidesjs-item")*1+1)})})}e(t).bind("resize",function(){return a.update()});this._setActive();this.options.play.auto&&this.play();return this.options.callback.loaded(this.options.start)};r.prototype._setActive=function(t){var n,r;n=e(this.element);this.data=e.data(this);r=t>-1?t:this.data.current;e(".active",n).removeClass("active");return e(".slidesjs-pagination li:eq("+r+") a",n).addClass("active")};r.prototype.update=function(){var t,n,r;t=e(this.element);this.data=e.data(this);e(".slidesjs-control",t).children(":not(:eq("+this.data.current+"))").css({display:"none",left:0,zIndex:0});r=t.width();n=this.options.height/this.options.width*r;this.options.width=r;this.options.height=n;return e(".slidesjs-control, .slidesjs-container",t).css({width:r,height:n})};r.prototype.next=function(t){var n;n=e(this.element);this.data=e.data(this);e.data(this,"direction","next");t===void 0&&(t=this.options.navigation.effect);return t==="fade"?this._fade():this._slide()};r.prototype.previous=function(t){var n;n=e(this.element);this.data=e.data(this);e.data(this,"direction","previous");t===void 0&&(t=this.options.navigation.effect);return t==="fade"?this._fade():this._slide()};r.prototype.goto=function(t){var n,r;n=e(this.element);this.data=e.data(this);r===void 0&&(r=this.options.pagination.effect);t>this.data.total?t=this.data.total:t<1&&(t=1);if(typeof t=="number")return r==="fade"?this._fade(t):this._slide(t);if(typeof t=="string"){if(t==="first")return r==="fade"?this._fade(0):this._slide(0);if(t==="last")return r==="fade"?this._fade(this.data.total):this._slide(this.data.total)}};r.prototype._setuptouch=function(){var t,n,r,i;t=e(this.element);this.data=e.data(this);i=e(".slidesjs-control",t);n=this.data.current+1;r=this.data.current-1;r<0&&(r=this.data.total-1);n>this.data.total-1&&(n=0);i.children(":eq("+n+")").css({display:"block",left:this.options.width});return i.children(":eq("+r+")").css({display:"block",left:-this.options.width})};r.prototype._touchstart=function(t){var n,r;n=e(this.element);this.data=e.data(this);r=t.originalEvent.touches[0];this._setuptouch();e.data(this,"touchtimer",Number(new Date));e.data(this,"touchstartx",r.pageX);e.data(this,"touchstarty",r.pageY);return t.stopPropagation()};r.prototype._touchend=function(t){var n,r,i,s,o,u,a,f=this;n=e(this.element);this.data=e.data(this);u=t.originalEvent.touches[0];s=e(".slidesjs-control",n);if(s.position().left>this.options.width*.5||s.position().left>this.options.width*.1&&Number(new Date)-this.data.touchtimer<250){e.data(this,"direction","previous");this._slide()}else if(s.position().left<-(this.options.width*.5)||s.position().left<-(this.options.width*.1)&&Number(new Date)-this.data.touchtimer<250){e.data(this,"direction","next");this._slide()}else{i=this.data.vendorPrefix;a=i+"Transform";r=i+"TransitionDuration";o=i+"TransitionTimingFunction";s[0].style[a]="translateX(0px)";s[0].style[r]=this.options.effect.slide.speed*.85+"ms"}s.on("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd",function(){i=f.data.vendorPrefix;a=i+"Transform";r=i+"TransitionDuration";o=i+"TransitionTimingFunction";s[0].style[a]="";s[0].style[r]="";return s[0].style[o]=""});return t.stopPropagation()};r.prototype._touchmove=function(t){var n,r,i,s,o;n=e(this.element);this.data=e.data(this);s=t.originalEvent.touches[0];r=this.data.vendorPrefix;i=e(".slidesjs-control",n);o=r+"Transform";e.data(this,"scrolling",Math.abs(s.pageX-this.data.touchstartx)<Math.abs(s.pageY-this.data.touchstarty));if(!this.data.animating&&!this.data.scrolling){t.preventDefault();this._setuptouch();i[0].style[o]="translateX("+(s.pageX-this.data.touchstartx)+"px)"}return t.stopPropagation()};r.prototype.play=function(t){var n,r,i,s=this;n=e(this.element);this.data=e.data(this);if(!this.data.playInterval){if(t){r=this.data.current;this.data.direction="next";this.options.play.effect==="fade"?this._fade():this._slide()}e.data(this,"playInterval",setInterval(function(){r=s.data.current;s.data.direction="next";return s.options.play.effect==="fade"?s._fade():s._slide()},this.options.play.interval));i=e(".slidesjs-container",n);if(this.options.play.pauseOnHover){i.unbind();i.bind("mouseenter",function(){return s.stop()});i.bind("mouseleave",function(){return s.options.play.restartDelay?e.data(s,"restartDelay",setTimeout(function(){return s.play(!0)},s.options.play.restartDelay)):s.play()})}e.data(this,"playing",!0);e(".slidesjs-play",n).addClass("slidesjs-playing");if(this.options.play.swap){e(".slidesjs-play",n).hide();return e(".slidesjs-stop",n).show()}}};r.prototype.stop=function(t){var n;n=e(this.element);this.data=e.data(this);clearInterval(this.data.playInterval);this.options.play.pauseOnHover&&t&&e(".slidesjs-container",n).unbind();e.data(this,"playInterval",null);e.data(this,"playing",!1);e(".slidesjs-play",n).removeClass("slidesjs-playing");if(this.options.play.swap){e(".slidesjs-stop",n).hide();return e(".slidesjs-play",n).show()}};r.prototype._slide=function(t){var n,r,i,s,o,u,a,f,l,c,h=this;n=e(this.element);this.data=e.data(this);if(!this.data.animating&&t!==this.data.current+1){e.data(this,"animating",!0);r=this.data.current;if(t>-1){t-=1;c=t>r?1:-1;i=t>r?-this.options.width:this.options.width;o=t}else{c=this.data.direction==="next"?1:-1;i=this.data.direction==="next"?-this.options.width:this.options.width;o=r+c}o===-1&&(o=this.data.total-1);o===this.data.total&&(o=0);this._setActive(o);a=e(".slidesjs-control",n);t>-1&&a.children(":not(:eq("+r+"))").css({display:"none",left:0,zIndex:0});a.children(":eq("+o+")").css({display:"block",left:c*this.options.width,zIndex:10});this.options.callback.start(r+1);if(this.data.vendorPrefix){u=this.data.vendorPrefix;l=u+"Transform";s=u+"TransitionDuration";f=u+"TransitionTimingFunction";a[0].style[l]="translateX("+i+"px)";a[0].style[s]=this.options.effect.slide.speed+"ms";return a.on("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd",function(){a[0].style[l]="";a[0].style[s]="";a.children(":eq("+o+")").css({left:0});a.children(":eq("+r+")").css({display:"none",left:0,zIndex:0});e.data(h,"current",o);e.data(h,"animating",!1);a.unbind("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd");a.children(":not(:eq("+o+"))").css({display:"none",left:0,zIndex:0});h.data.touch&&h._setuptouch();return h.options.callback.complete(o+1)})}return a.stop().animate({left:i},this.options.effect.slide.speed,function(){a.css({left:0});a.children(":eq("+o+")").css({left:0});return a.children(":eq("+r+")").css({display:"none",left:0,zIndex:0},e.data(h,"current",o),e.data(h,"animating",!1),h.options.callback.complete(o+1))})}};r.prototype._fade=function(t){var n,r,i,s,o,u=this;n=e(this.element);this.data=e.data(this);if(!this.data.animating&&t!==this.data.current+1){e.data(this,"animating",!0);r=this.data.current;if(t){t-=1;o=t>r?1:-1;i=t}else{o=this.data.direction==="next"?1:-1;i=r+o}i===-1&&(i=this.data.total-1);i===this.data.total&&(i=0);this._setActive(i);s=e(".slidesjs-control",n);s.children(":eq("+i+")").css({display:"none",left:0,zIndex:10});this.options.callback.start(r+1);if(this.options.effect.fade.crossfade){s.children(":eq("+this.data.current+")").stop().fadeOut(this.options.effect.fade.speed);return s.children(":eq("+i+")").stop().fadeIn(this.options.effect.fade.speed,function(){s.children(":eq("+i+")").css({zIndex:0});e.data(u,"animating",!1);e.data(u,"current",i);return u.options.callback.complete(i+1)})}return s.children(":eq("+r+")").stop().fadeOut(this.options.effect.fade.speed,function(){s.children(":eq("+i+")").stop().fadeIn(u.options.effect.fade.speed,function(){return s.children(":eq("+i+")").css({zIndex:10})});e.data(u,"animating",!1);e.data(u,"current",i);return u.options.callback.complete(i+1)})}};r.prototype._getVendorPrefix=function(){var e,t,r,i,s;e=n.body||n.documentElement;r=e.style;i="transition";s=["Moz","Webkit","Khtml","O","ms"];i=i.charAt(0).toUpperCase()+i.substr(1);t=0;while(t<s.length){if(typeof r[s[t]+i]=="string")return s[t];t++}return!1};return e.fn[s]=function(t){return this.each(function(){if(!e.data(this,"plugin_"+s))return e.data(this,"plugin_"+s,new r(this,t))})}})(jQuery,window,document)}).call(this);
+
    defaults = {
 +
      width: 940,
 +
      height: 528,
 +
      start: 1,
 +
      navigation: {
 +
        active: true,
 +
        effect: "slide"
 +
      },
 +
      pagination: {
 +
        active: true,
 +
        effect: "slide"
 +
      },
 +
      play: {
 +
        active: false,
 +
        effect: "slide",
 +
        interval: 5000,
 +
        auto: false,
 +
        swap: true,
 +
        pauseOnHover: false,
 +
        restartDelay: 2500
 +
      },
 +
      effect: {
 +
        slide: {
 +
          speed: 500
 +
        },
 +
        fade: {
 +
          speed: 300,
 +
          crossfade: true
 +
        }
 +
      },
 +
      callback: {
 +
        loaded: function() {},
 +
        start: function() {},
 +
        complete: function() {}
 +
      }
 +
    };
 +
    Plugin = (function() {
 +
 
 +
      function Plugin(element, options) {
 +
        this.element = element;
 +
        this.options = $.extend(true, {}, defaults, options);
 +
        this._defaults = defaults;
 +
        this._name = pluginName;
 +
        this.init();
 +
      }
 +
 
 +
      return Plugin;
 +
 
 +
    })();
 +
    Plugin.prototype.init = function() {
 +
      var $element, nextButton, pagination, playButton, prevButton, stopButton,
 +
        _this = this;
 +
      $element = $(this.element);
 +
      this.data = $.data(this);
 +
      $.data(this, "animating", false);
 +
      $.data(this, "total", $element.children().not(".slidesjs-navigation", $element).length);
 +
      $.data(this, "current", this.options.start - 1);
 +
      $.data(this, "vendorPrefix", this._getVendorPrefix());
 +
      if (typeof TouchEvent !== "undefined") {
 +
        $.data(this, "touch", true);
 +
        this.options.effect.slide.speed = this.options.effect.slide.speed / 2;
 +
      }
 +
      $element.css({
 +
        overflow: "hidden"
 +
      });
 +
      $element.slidesContainer = $element.children().not(".slidesjs-navigation", $element).wrapAll("<div class='slidesjs-container'>", $element).parent().css({
 +
        overflow: "hidden",
 +
        position: "relative"
 +
      });
 +
      $(".slidesjs-container", $element).wrapInner("<div class='slidesjs-control'>", $element).children();
 +
      $(".slidesjs-control", $element).css({
 +
        position: "relative",
 +
        left: 0
 +
      });
 +
      $(".slidesjs-control", $element).children().addClass("slidesjs-slide").css({
 +
        position: "absolute",
 +
        top: 0,
 +
        left: 0,
 +
        width: "100%",
 +
        zIndex: 0,
 +
        display: "none",
 +
        webkitBackfaceVisibility: "hidden"
 +
      });
 +
      $.each($(".slidesjs-control", $element).children(), function(i) {
 +
        var $slide;
 +
        $slide = $(this);
 +
        return $slide.attr("slidesjs-index", i);
 +
      });
 +
      if (this.data.touch) {
 +
        $(".slidesjs-control", $element).on("touchstart", function(e) {
 +
          return _this._touchstart(e);
 +
        });
 +
        $(".slidesjs-control", $element).on("touchmove", function(e) {
 +
          return _this._touchmove(e);
 +
        });
 +
        $(".slidesjs-control", $element).on("touchend", function(e) {
 +
          return _this._touchend(e);
 +
        });
 +
      }
 +
      $element.fadeIn(0);
 +
      this.update();
 +
      if (this.data.touch) {
 +
        this._setuptouch();
 +
      }
 +
      $(".slidesjs-control", $element).children(":eq(" + this.data.current + ")").eq(0).fadeIn(0, function() {
 +
        return $(this).css({
 +
          zIndex: 10
 +
        });
 +
      });
 +
      if (this.options.navigation.active) {
 +
        prevButton = $("<a>", {
 +
          "class": "slidesjs-previous slidesjs-navigation",
 +
          href: "#",
 +
          title: "Previous",
 +
          text: "Previous"
 +
        }).appendTo($element);
 +
        nextButton = $("<a>", {
 +
          "class": "slidesjs-next slidesjs-navigation",
 +
          href: "#",
 +
          title: "Next",
 +
          text: "Next"
 +
        }).appendTo($element);
 +
      }
 +
      $(".slidesjs-next", $element).click(function(e) {
 +
        e.preventDefault();
 +
        _this.stop(true);
 +
        return _this.next(_this.options.navigation.effect);
 +
      });
 +
      $(".slidesjs-previous", $element).click(function(e) {
 +
        e.preventDefault();
 +
        _this.stop(true);
 +
        return _this.previous(_this.options.navigation.effect);
 +
      });
 +
      if (this.options.play.active) {
 +
        playButton = $("<a>", {
 +
          "class": "slidesjs-play slidesjs-navigation",
 +
          href: "#",
 +
          title: "Play",
 +
          text: "Play"
 +
        }).appendTo($element);
 +
        stopButton = $("<a>", {
 +
          "class": "slidesjs-stop slidesjs-navigation",
 +
          href: "#",
 +
          title: "Stop",
 +
          text: "Stop"
 +
        }).appendTo($element);
 +
        playButton.click(function(e) {
 +
          e.preventDefault();
 +
          return _this.play(true);
 +
        });
 +
        stopButton.click(function(e) {
 +
          e.preventDefault();
 +
          return _this.stop(true);
 +
        });
 +
        if (this.options.play.swap) {
 +
          stopButton.css({
 +
            display: "none"
 +
          });
 +
        }
 +
      }
 +
      if (this.options.pagination.active) {
 +
        pagination = $("<ul>", {
 +
          "class": "slidesjs-pagination"
 +
        }).appendTo($element);
 +
        $.each(new Array(this.data.total), function(i) {
 +
          var paginationItem, paginationLink;
 +
          paginationItem = $("<li>", {
 +
            "class": "slidesjs-pagination-item"
 +
          }).appendTo(pagination);
 +
          paginationLink = $("<a>", {
 +
            href: "#",
 +
            "data-slidesjs-item": i,
 +
            html: i + 1
 +
          }).appendTo(paginationItem);
 +
          return paginationLink.click(function(e) {
 +
            e.preventDefault();
 +
            _this.stop(true);
 +
            return _this.goto(($(e.currentTarget).attr("data-slidesjs-item") * 1) + 1);
 +
          });
 +
        });
 +
      }
 +
      $(window).bind("resize", function() {
 +
        return _this.update();
 +
      });
 +
      this._setActive();
 +
      if (this.options.play.auto) {
 +
        this.play();
 +
      }
 +
      return this.options.callback.loaded(this.options.start);
 +
    };
 +
    Plugin.prototype._setActive = function(number) {
 +
      var $element, current;
 +
      $element = $(this.element);
 +
      this.data = $.data(this);
 +
      current = number > -1 ? number : this.data.current;
 +
      $(".active", $element).removeClass("active");
 +
      return $(".slidesjs-pagination li:eq(" + current + ") a", $element).addClass("active");
 +
    };
 +
    Plugin.prototype.update = function() {
 +
      var $element, height, width;
 +
      $element = $(this.element);
 +
      this.data = $.data(this);
 +
      $(".slidesjs-control", $element).children(":not(:eq(" + this.data.current + "))").css({
 +
        display: "none",
 +
        left: 0,
 +
        zIndex: 0
 +
      });
 +
      width = $element.width();
 +
      height = (this.options.height / this.options.width) * width;
 +
      this.options.width = width;
 +
      this.options.height = height;
 +
      return $(".slidesjs-control, .slidesjs-container", $element).css({
 +
        width: width,
 +
        height: height
 +
      });
 +
    };
 +
    Plugin.prototype.next = function(effect) {
 +
      var $element;
 +
      $element = $(this.element);
 +
      this.data = $.data(this);
 +
      $.data(this, "direction", "next");
 +
      if (effect === void 0) {
 +
        effect = this.options.navigation.effect;
 +
      }
 +
      if (effect === "fade") {
 +
        return this._fade();
 +
      } else {
 +
        return this._slide();
 +
      }
 +
    };
 +
    Plugin.prototype.previous = function(effect) {
 +
      var $element;
 +
      $element = $(this.element);
 +
      this.data = $.data(this);
 +
      $.data(this, "direction", "previous");
 +
      if (effect === void 0) {
 +
        effect = this.options.navigation.effect;
 +
      }
 +
      if (effect === "fade") {
 +
        return this._fade();
 +
      } else {
 +
        return this._slide();
 +
      }
 +
    };
 +
    Plugin.prototype.goto = function(number) {
 +
      var $element, effect;
 +
      $element = $(this.element);
 +
      this.data = $.data(this);
 +
      if (effect === void 0) {
 +
        effect = this.options.pagination.effect;
 +
      }
 +
      if (number > this.data.total) {
 +
        number = this.data.total;
 +
      } else if (number < 1) {
 +
        number = 1;
 +
      }
 +
      if (typeof number === "number") {
 +
        if (effect === "fade") {
 +
          return this._fade(number);
 +
        } else {
 +
          return this._slide(number);
 +
        }
 +
      } else if (typeof number === "string") {
 +
        if (number === "first") {
 +
          if (effect === "fade") {
 +
            return this._fade(0);
 +
          } else {
 +
            return this._slide(0);
 +
          }
 +
        } else if (number === "last") {
 +
          if (effect === "fade") {
 +
            return this._fade(this.data.total);
 +
          } else {
 +
            return this._slide(this.data.total);
 +
          }
 +
        }
 +
      }
 +
    };
 +
    Plugin.prototype._setuptouch = function() {
 +
      var $element, next, previous, slidesControl;
 +
      $element = $(this.element);
 +
      this.data = $.data(this);
 +
      slidesControl = $(".slidesjs-control", $element);
 +
      next = this.data.current + 1;
 +
      previous = this.data.current - 1;
 +
      if (previous < 0) {
 +
        previous = this.data.total - 1;
 +
      }
 +
      if (next > this.data.total - 1) {
 +
        next = 0;
 +
      }
 +
      slidesControl.children(":eq(" + next + ")").css({
 +
        display: "block",
 +
        left: this.options.width
 +
      });
 +
      return slidesControl.children(":eq(" + previous + ")").css({
 +
        display: "block",
 +
        left: -this.options.width
 +
      });
 +
    };
 +
    Plugin.prototype._touchstart = function(e) {
 +
      var $element, touches;
 +
      $element = $(this.element);
 +
      this.data = $.data(this);
 +
      touches = e.originalEvent.touches[0];
 +
      this._setuptouch();
 +
      $.data(this, "touchtimer", Number(new Date()));
 +
      $.data(this, "touchstartx", touches.pageX);
 +
      $.data(this, "touchstarty", touches.pageY);
 +
      return e.stopPropagation();
 +
    };
 +
    Plugin.prototype._touchend = function(e) {
 +
      var $element, duration, prefix, slidesControl, timing, touches, transform,
 +
        _this = this;
 +
      $element = $(this.element);
 +
      this.data = $.data(this);
 +
      touches = e.originalEvent.touches[0];
 +
      slidesControl = $(".slidesjs-control", $element);
 +
      if (slidesControl.position().left > this.options.width * 0.5 || slidesControl.position().left > this.options.width * 0.1 && (Number(new Date()) - this.data.touchtimer < 250)) {
 +
        $.data(this, "direction", "previous");
 +
        this._slide();
 +
      } else if (slidesControl.position().left < -(this.options.width * 0.5) || slidesControl.position().left < -(this.options.width * 0.1) && (Number(new Date()) - this.data.touchtimer < 250)) {
 +
        $.data(this, "direction", "next");
 +
        this._slide();
 +
      } else {
 +
        prefix = this.data.vendorPrefix;
 +
        transform = prefix + "Transform";
 +
        duration = prefix + "TransitionDuration";
 +
        timing = prefix + "TransitionTimingFunction";
 +
        slidesControl[0].style[transform] = "translateX(0px)";
 +
        slidesControl[0].style[duration] = this.options.effect.slide.speed * 0.85 + "ms";
 +
      }
 +
      slidesControl.on("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd", function() {
 +
        prefix = _this.data.vendorPrefix;
 +
        transform = prefix + "Transform";
 +
        duration = prefix + "TransitionDuration";
 +
        timing = prefix + "TransitionTimingFunction";
 +
        slidesControl[0].style[transform] = "";
 +
        slidesControl[0].style[duration] = "";
 +
        return slidesControl[0].style[timing] = "";
 +
      });
 +
      return e.stopPropagation();
 +
    };
 +
    Plugin.prototype._touchmove = function(e) {
 +
      var $element, prefix, slidesControl, touches, transform;
 +
      $element = $(this.element);
 +
      this.data = $.data(this);
 +
      touches = e.originalEvent.touches[0];
 +
      prefix = this.data.vendorPrefix;
 +
      slidesControl = $(".slidesjs-control", $element);
 +
      transform = prefix + "Transform";
 +
      $.data(this, "scrolling", Math.abs(touches.pageX - this.data.touchstartx) < Math.abs(touches.pageY - this.data.touchstarty));
 +
      if (!this.data.animating && !this.data.scrolling) {
 +
        e.preventDefault();
 +
        this._setuptouch();
 +
        slidesControl[0].style[transform] = "translateX(" + (touches.pageX - this.data.touchstartx) + "px)";
 +
      }
 +
      return e.stopPropagation();
 +
    };
 +
    Plugin.prototype.play = function(next) {
 +
      var $element, currentSlide, slidesContainer,
 +
        _this = this;
 +
      $element = $(this.element);
 +
      this.data = $.data(this);
 +
      if (!this.data.playInterval) {
 +
        if (next) {
 +
          currentSlide = this.data.current;
 +
          this.data.direction = "next";
 +
          if (this.options.play.effect === "fade") {
 +
            this._fade();
 +
          } else {
 +
            this._slide();
 +
          }
 +
        }
 +
        $.data(this, "playInterval", setInterval((function() {
 +
          currentSlide = _this.data.current;
 +
          _this.data.direction = "next";
 +
          if (_this.options.play.effect === "fade") {
 +
            return _this._fade();
 +
          } else {
 +
            return _this._slide();
 +
          }
 +
        }), this.options.play.interval));
 +
        slidesContainer = $(".slidesjs-container", $element);
 +
        if (this.options.play.pauseOnHover) {
 +
          slidesContainer.unbind();
 +
          slidesContainer.bind("mouseenter", function() {
 +
            return _this.stop();
 +
          });
 +
          slidesContainer.bind("mouseleave", function() {
 +
            if (_this.options.play.restartDelay) {
 +
              return $.data(_this, "restartDelay", setTimeout((function() {
 +
                return _this.play(true);
 +
              }), _this.options.play.restartDelay));
 +
            } else {
 +
              return _this.play();
 +
            }
 +
          });
 +
        }
 +
        $.data(this, "playing", true);
 +
        $(".slidesjs-play", $element).addClass("slidesjs-playing");
 +
        if (this.options.play.swap) {
 +
          $(".slidesjs-play", $element).hide();
 +
          return $(".slidesjs-stop", $element).show();
 +
        }
 +
      }
 +
    };
 +
    Plugin.prototype.stop = function(clicked) {
 +
      var $element;
 +
      $element = $(this.element);
 +
      this.data = $.data(this);
 +
      clearInterval(this.data.playInterval);
 +
      if (this.options.play.pauseOnHover && clicked) {
 +
        $(".slidesjs-container", $element).unbind();
 +
      }
 +
      $.data(this, "playInterval", null);
 +
      $.data(this, "playing", false);
 +
      $(".slidesjs-play", $element).removeClass("slidesjs-playing");
 +
      if (this.options.play.swap) {
 +
        $(".slidesjs-stop", $element).hide();
 +
        return $(".slidesjs-play", $element).show();
 +
      }
 +
    };
 +
    Plugin.prototype._slide = function(number) {
 +
      var $element, currentSlide, direction, duration, next, prefix, slidesControl, timing, transform, value,
 +
        _this = this;
 +
      $element = $(this.element);
 +
      this.data = $.data(this);
 +
      if (!this.data.animating && number !== this.data.current + 1) {
 +
        $.data(this, "animating", true);
 +
        currentSlide = this.data.current;
 +
        if (number > -1) {
 +
          number = number - 1;
 +
          value = number > currentSlide ? 1 : -1;
 +
          direction = number > currentSlide ? -this.options.width : this.options.width;
 +
          next = number;
 +
        } else {
 +
          value = this.data.direction === "next" ? 1 : -1;
 +
          direction = this.data.direction === "next" ? -this.options.width : this.options.width;
 +
          next = currentSlide + value;
 +
        }
 +
        if (next === -1) {
 +
          next = this.data.total - 1;
 +
        }
 +
        if (next === this.data.total) {
 +
          next = 0;
 +
        }
 +
        this._setActive(next);
 +
        slidesControl = $(".slidesjs-control", $element);
 +
        if (number > -1) {
 +
          slidesControl.children(":not(:eq(" + currentSlide + "))").css({
 +
            display: "none",
 +
            left: 0,
 +
            zIndex: 0
 +
          });
 +
        }
 +
        slidesControl.children(":eq(" + next + ")").css({
 +
          display: "block",
 +
          left: value * this.options.width,
 +
          zIndex: 10
 +
        });
 +
        this.options.callback.start(currentSlide + 1);
 +
        if (this.data.vendorPrefix) {
 +
          prefix = this.data.vendorPrefix;
 +
          transform = prefix + "Transform";
 +
          duration = prefix + "TransitionDuration";
 +
          timing = prefix + "TransitionTimingFunction";
 +
          slidesControl[0].style[transform] = "translateX(" + direction + "px)";
 +
          slidesControl[0].style[duration] = this.options.effect.slide.speed + "ms";
 +
          return slidesControl.on("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd", function() {
 +
            slidesControl[0].style[transform] = "";
 +
            slidesControl[0].style[duration] = "";
 +
            slidesControl.children(":eq(" + next + ")").css({
 +
              left: 0
 +
            });
 +
            slidesControl.children(":eq(" + currentSlide + ")").css({
 +
              display: "none",
 +
              left: 0,
 +
              zIndex: 0
 +
            });
 +
            $.data(_this, "current", next);
 +
            $.data(_this, "animating", false);
 +
            slidesControl.unbind("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd");
 +
            slidesControl.children(":not(:eq(" + next + "))").css({
 +
              display: "none",
 +
              left: 0,
 +
              zIndex: 0
 +
            });
 +
            if (_this.data.touch) {
 +
              _this._setuptouch();
 +
            }
 +
            return _this.options.callback.complete(next + 1);
 +
          });
 +
        } else {
 +
          return slidesControl.stop().animate({
 +
            left: direction
 +
          }, this.options.effect.slide.speed, (function() {
 +
            slidesControl.css({
 +
              left: 0
 +
            });
 +
            slidesControl.children(":eq(" + next + ")").css({
 +
              left: 0
 +
            });
 +
            return slidesControl.children(":eq(" + currentSlide + ")").css({
 +
              display: "none",
 +
              left: 0,
 +
              zIndex: 0
 +
            }, $.data(_this, "current", next), $.data(_this, "animating", false), _this.options.callback.complete(next + 1));
 +
          }));
 +
        }
 +
      }
 +
    };
 +
    Plugin.prototype._fade = function(number) {
 +
      var $element, currentSlide, next, slidesControl, value,
 +
        _this = this;
 +
      $element = $(this.element);
 +
      this.data = $.data(this);
 +
      if (!this.data.animating && number !== this.data.current + 1) {
 +
        $.data(this, "animating", true);
 +
        currentSlide = this.data.current;
 +
        if (number) {
 +
          number = number - 1;
 +
          value = number > currentSlide ? 1 : -1;
 +
          next = number;
 +
        } else {
 +
          value = this.data.direction === "next" ? 1 : -1;
 +
          next = currentSlide + value;
 +
        }
 +
        if (next === -1) {
 +
          next = this.data.total - 1;
 +
        }
 +
        if (next === this.data.total) {
 +
          next = 0;
 +
        }
 +
        this._setActive(next);
 +
        slidesControl = $(".slidesjs-control", $element);
 +
        slidesControl.children(":eq(" + next + ")").css({
 +
          display: "none",
 +
          left: 0,
 +
          zIndex: 10
 +
        });
 +
        this.options.callback.start(currentSlide + 1);
 +
        if (this.options.effect.fade.crossfade) {
 +
          slidesControl.children(":eq(" + this.data.current + ")").stop().fadeOut(this.options.effect.fade.speed);
 +
          return slidesControl.children(":eq(" + next + ")").stop().fadeIn(this.options.effect.fade.speed, (function() {
 +
            slidesControl.children(":eq(" + next + ")").css({
 +
              zIndex: 0
 +
            });
 +
            $.data(_this, "animating", false);
 +
            $.data(_this, "current", next);
 +
            return _this.options.callback.complete(next + 1);
 +
          }));
 +
        } else {
 +
          return slidesControl.children(":eq(" + currentSlide + ")").stop().fadeOut(this.options.effect.fade.speed, (function() {
 +
            slidesControl.children(":eq(" + next + ")").stop().fadeIn(_this.options.effect.fade.speed, (function() {
 +
              return slidesControl.children(":eq(" + next + ")").css({
 +
                zIndex: 10
 +
              });
 +
            }));
 +
            $.data(_this, "animating", false);
 +
            $.data(_this, "current", next);
 +
            return _this.options.callback.complete(next + 1);
 +
          }));
 +
        }
 +
      }
 +
    };
 +
    Plugin.prototype._getVendorPrefix = function() {
 +
      var body, i, style, transition, vendor;
 +
      body = document.body || document.documentElement;
 +
      style = body.style;
 +
      transition = "transition";
 +
      vendor = ["Moz", "Webkit", "Khtml", "O", "ms"];
 +
      transition = transition.charAt(0).toUpperCase() + transition.substr(1);
 +
      i = 0;
 +
      while (i < vendor.length) {
 +
        if (typeof style[vendor[i] + transition] === "string") {
 +
          return vendor[i];
 +
        }
 +
        i++;
 +
      }
 +
      return false;
 +
    };
 +
    return $.fn[pluginName] = function(options) {
 +
      return this.each(function() {
 +
        if (!$.data(this, "plugin_" + pluginName)) {
 +
          return $.data(this, "plugin_" + pluginName, new Plugin(this, options));
 +
        }
 +
      });
 +
    };
 +
  })(jQuery, window, document);
 +
 
 +
}).call(this);

Latest revision as of 15:52, 6 October 2014

// Generated by CoffeeScript 1.6.1 (function() {

 (function($, window, document) {
   var Plugin, defaults, pluginName;
   pluginName = "slidesjs";
   defaults = {
     width: 940,
     height: 528,
     start: 1,
     navigation: {
       active: true,
       effect: "slide"
     },
     pagination: {
       active: true,
       effect: "slide"
     },
     play: {
       active: false,
       effect: "slide",
       interval: 5000,
       auto: false,
       swap: true,
       pauseOnHover: false,
       restartDelay: 2500
     },
     effect: {
       slide: {
         speed: 500
       },
       fade: {
         speed: 300,
         crossfade: true
       }
     },
     callback: {
       loaded: function() {},
       start: function() {},
       complete: function() {}
     }
   };
   Plugin = (function() {
     function Plugin(element, options) {
       this.element = element;
       this.options = $.extend(true, {}, defaults, options);
       this._defaults = defaults;
       this._name = pluginName;
       this.init();
     }
     return Plugin;
   })();
   Plugin.prototype.init = function() {
     var $element, nextButton, pagination, playButton, prevButton, stopButton,
       _this = this;
     $element = $(this.element);
     this.data = $.data(this);
     $.data(this, "animating", false);
     $.data(this, "total", $element.children().not(".slidesjs-navigation", $element).length);
     $.data(this, "current", this.options.start - 1);
     $.data(this, "vendorPrefix", this._getVendorPrefix());
     if (typeof TouchEvent !== "undefined") {
       $.data(this, "touch", true);
       this.options.effect.slide.speed = this.options.effect.slide.speed / 2;
     }
     $element.css({
       overflow: "hidden"
     });
$element.slidesContainer = $element.children().not(".slidesjs-navigation", $element).wrapAll("
", $element).parent().css({
       overflow: "hidden",
       position: "relative"
     });
$(".slidesjs-container", $element).wrapInner("
", $element).children();
     $(".slidesjs-control", $element).css({
       position: "relative",
       left: 0
     });
     $(".slidesjs-control", $element).children().addClass("slidesjs-slide").css({
       position: "absolute",
       top: 0,
       left: 0,
       width: "100%",
       zIndex: 0,
       display: "none",
       webkitBackfaceVisibility: "hidden"
     });
     $.each($(".slidesjs-control", $element).children(), function(i) {
       var $slide;
       $slide = $(this);
       return $slide.attr("slidesjs-index", i);
     });
     if (this.data.touch) {
       $(".slidesjs-control", $element).on("touchstart", function(e) {
         return _this._touchstart(e);
       });
       $(".slidesjs-control", $element).on("touchmove", function(e) {
         return _this._touchmove(e);
       });
       $(".slidesjs-control", $element).on("touchend", function(e) {
         return _this._touchend(e);
       });
     }
     $element.fadeIn(0);
     this.update();
     if (this.data.touch) {
       this._setuptouch();
     }
     $(".slidesjs-control", $element).children(":eq(" + this.data.current + ")").eq(0).fadeIn(0, function() {
       return $(this).css({
         zIndex: 10
       });
     });
     if (this.options.navigation.active) {
       prevButton = $("<a>", {
         "class": "slidesjs-previous slidesjs-navigation",
         href: "#",
         title: "Previous",
         text: "Previous"
       }).appendTo($element);
       nextButton = $("<a>", {
         "class": "slidesjs-next slidesjs-navigation",
         href: "#",
         title: "Next",
         text: "Next"
       }).appendTo($element);
     }
     $(".slidesjs-next", $element).click(function(e) {
       e.preventDefault();
       _this.stop(true);
       return _this.next(_this.options.navigation.effect);
     });
     $(".slidesjs-previous", $element).click(function(e) {
       e.preventDefault();
       _this.stop(true);
       return _this.previous(_this.options.navigation.effect);
     });
     if (this.options.play.active) {
       playButton = $("<a>", {
         "class": "slidesjs-play slidesjs-navigation",
         href: "#",
         title: "Play",
         text: "Play"
       }).appendTo($element);
       stopButton = $("<a>", {
         "class": "slidesjs-stop slidesjs-navigation",
         href: "#",
         title: "Stop",
         text: "Stop"
       }).appendTo($element);
       playButton.click(function(e) {
         e.preventDefault();
         return _this.play(true);
       });
       stopButton.click(function(e) {
         e.preventDefault();
         return _this.stop(true);
       });
       if (this.options.play.swap) {
         stopButton.css({
           display: "none"
         });
       }
     }
     if (this.options.pagination.active) {
pagination = $("
    ", { "class": "slidesjs-pagination" }).appendTo($element); $.each(new Array(this.data.total), function(i) { var paginationItem, paginationLink; paginationItem = $("
  • ", { "class": "slidesjs-pagination-item" }).appendTo(pagination); paginationLink = $("<a>", { href: "#", "data-slidesjs-item": i, html: i + 1 }).appendTo(paginationItem); return paginationLink.click(function(e) { e.preventDefault(); _this.stop(true); return _this.goto(($(e.currentTarget).attr("data-slidesjs-item") * 1) + 1); }); }); } $(window).bind("resize", function() { return _this.update(); }); this._setActive(); if (this.options.play.auto) { this.play(); } return this.options.callback.loaded(this.options.start); }; Plugin.prototype._setActive = function(number) { var $element, current; $element = $(this.element); this.data = $.data(this); current = number > -1 ? number : this.data.current; $(".active", $element).removeClass("active"); return $(".slidesjs-pagination li:eq(" + current + ") a", $element).addClass("active"); }; Plugin.prototype.update = function() { var $element, height, width; $element = $(this.element); this.data = $.data(this); $(".slidesjs-control", $element).children(":not(:eq(" + this.data.current + "))").css({ display: "none", left: 0, zIndex: 0 }); width = $element.width(); height = (this.options.height / this.options.width) * width; this.options.width = width; this.options.height = height; return $(".slidesjs-control, .slidesjs-container", $element).css({ width: width, height: height }); }; Plugin.prototype.next = function(effect) { var $element; $element = $(this.element); this.data = $.data(this); $.data(this, "direction", "next"); if (effect === void 0) { effect = this.options.navigation.effect; } if (effect === "fade") { return this._fade(); } else { return this._slide(); } }; Plugin.prototype.previous = function(effect) { var $element; $element = $(this.element); this.data = $.data(this); $.data(this, "direction", "previous"); if (effect === void 0) { effect = this.options.navigation.effect; } if (effect === "fade") { return this._fade(); } else { return this._slide(); } }; Plugin.prototype.goto = function(number) { var $element, effect; $element = $(this.element); this.data = $.data(this); if (effect === void 0) { effect = this.options.pagination.effect; } if (number > this.data.total) { number = this.data.total; } else if (number < 1) { number = 1; } if (typeof number === "number") { if (effect === "fade") { return this._fade(number); } else { return this._slide(number); } } else if (typeof number === "string") { if (number === "first") { if (effect === "fade") { return this._fade(0); } else { return this._slide(0); } } else if (number === "last") { if (effect === "fade") { return this._fade(this.data.total); } else { return this._slide(this.data.total); } } } }; Plugin.prototype._setuptouch = function() { var $element, next, previous, slidesControl; $element = $(this.element); this.data = $.data(this); slidesControl = $(".slidesjs-control", $element); next = this.data.current + 1; previous = this.data.current - 1; if (previous < 0) { previous = this.data.total - 1; } if (next > this.data.total - 1) { next = 0; } slidesControl.children(":eq(" + next + ")").css({ display: "block", left: this.options.width }); return slidesControl.children(":eq(" + previous + ")").css({ display: "block", left: -this.options.width }); }; Plugin.prototype._touchstart = function(e) { var $element, touches; $element = $(this.element); this.data = $.data(this); touches = e.originalEvent.touches[0]; this._setuptouch(); $.data(this, "touchtimer", Number(new Date())); $.data(this, "touchstartx", touches.pageX); $.data(this, "touchstarty", touches.pageY); return e.stopPropagation(); }; Plugin.prototype._touchend = function(e) { var $element, duration, prefix, slidesControl, timing, touches, transform, _this = this; $element = $(this.element); this.data = $.data(this); touches = e.originalEvent.touches[0]; slidesControl = $(".slidesjs-control", $element); if (slidesControl.position().left > this.options.width * 0.5 || slidesControl.position().left > this.options.width * 0.1 && (Number(new Date()) - this.data.touchtimer < 250)) { $.data(this, "direction", "previous"); this._slide(); } else if (slidesControl.position().left < -(this.options.width * 0.5) || slidesControl.position().left < -(this.options.width * 0.1) && (Number(new Date()) - this.data.touchtimer < 250)) { $.data(this, "direction", "next"); this._slide(); } else { prefix = this.data.vendorPrefix; transform = prefix + "Transform"; duration = prefix + "TransitionDuration"; timing = prefix + "TransitionTimingFunction"; slidesControl[0].style[transform] = "translateX(0px)"; slidesControl[0].style[duration] = this.options.effect.slide.speed * 0.85 + "ms"; } slidesControl.on("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd", function() { prefix = _this.data.vendorPrefix; transform = prefix + "Transform"; duration = prefix + "TransitionDuration"; timing = prefix + "TransitionTimingFunction"; slidesControl[0].style[transform] = ""; slidesControl[0].style[duration] = ""; return slidesControl[0].style[timing] = ""; }); return e.stopPropagation(); }; Plugin.prototype._touchmove = function(e) { var $element, prefix, slidesControl, touches, transform; $element = $(this.element); this.data = $.data(this); touches = e.originalEvent.touches[0]; prefix = this.data.vendorPrefix; slidesControl = $(".slidesjs-control", $element); transform = prefix + "Transform"; $.data(this, "scrolling", Math.abs(touches.pageX - this.data.touchstartx) < Math.abs(touches.pageY - this.data.touchstarty)); if (!this.data.animating && !this.data.scrolling) { e.preventDefault(); this._setuptouch(); slidesControl[0].style[transform] = "translateX(" + (touches.pageX - this.data.touchstartx) + "px)"; } return e.stopPropagation(); }; Plugin.prototype.play = function(next) { var $element, currentSlide, slidesContainer, _this = this; $element = $(this.element); this.data = $.data(this); if (!this.data.playInterval) { if (next) { currentSlide = this.data.current; this.data.direction = "next"; if (this.options.play.effect === "fade") { this._fade(); } else { this._slide(); } } $.data(this, "playInterval", setInterval((function() { currentSlide = _this.data.current; _this.data.direction = "next"; if (_this.options.play.effect === "fade") { return _this._fade(); } else { return _this._slide(); } }), this.options.play.interval)); slidesContainer = $(".slidesjs-container", $element); if (this.options.play.pauseOnHover) { slidesContainer.unbind(); slidesContainer.bind("mouseenter", function() { return _this.stop(); }); slidesContainer.bind("mouseleave", function() { if (_this.options.play.restartDelay) { return $.data(_this, "restartDelay", setTimeout((function() { return _this.play(true); }), _this.options.play.restartDelay)); } else { return _this.play(); } }); } $.data(this, "playing", true); $(".slidesjs-play", $element).addClass("slidesjs-playing"); if (this.options.play.swap) { $(".slidesjs-play", $element).hide(); return $(".slidesjs-stop", $element).show(); } } }; Plugin.prototype.stop = function(clicked) { var $element; $element = $(this.element); this.data = $.data(this); clearInterval(this.data.playInterval); if (this.options.play.pauseOnHover && clicked) { $(".slidesjs-container", $element).unbind(); } $.data(this, "playInterval", null); $.data(this, "playing", false); $(".slidesjs-play", $element).removeClass("slidesjs-playing"); if (this.options.play.swap) { $(".slidesjs-stop", $element).hide(); return $(".slidesjs-play", $element).show(); } }; Plugin.prototype._slide = function(number) { var $element, currentSlide, direction, duration, next, prefix, slidesControl, timing, transform, value, _this = this; $element = $(this.element); this.data = $.data(this); if (!this.data.animating && number !== this.data.current + 1) { $.data(this, "animating", true); currentSlide = this.data.current; if (number > -1) { number = number - 1; value = number > currentSlide ? 1 : -1; direction = number > currentSlide ? -this.options.width : this.options.width; next = number; } else { value = this.data.direction === "next" ? 1 : -1; direction = this.data.direction === "next" ? -this.options.width : this.options.width; next = currentSlide + value; } if (next === -1) { next = this.data.total - 1; } if (next === this.data.total) { next = 0; } this._setActive(next); slidesControl = $(".slidesjs-control", $element); if (number > -1) { slidesControl.children(":not(:eq(" + currentSlide + "))").css({ display: "none", left: 0, zIndex: 0 }); } slidesControl.children(":eq(" + next + ")").css({ display: "block", left: value * this.options.width, zIndex: 10 }); this.options.callback.start(currentSlide + 1); if (this.data.vendorPrefix) { prefix = this.data.vendorPrefix; transform = prefix + "Transform"; duration = prefix + "TransitionDuration"; timing = prefix + "TransitionTimingFunction"; slidesControl[0].style[transform] = "translateX(" + direction + "px)"; slidesControl[0].style[duration] = this.options.effect.slide.speed + "ms"; return slidesControl.on("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd", function() { slidesControl[0].style[transform] = ""; slidesControl[0].style[duration] = ""; slidesControl.children(":eq(" + next + ")").css({ left: 0 }); slidesControl.children(":eq(" + currentSlide + ")").css({ display: "none", left: 0, zIndex: 0 }); $.data(_this, "current", next); $.data(_this, "animating", false); slidesControl.unbind("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd"); slidesControl.children(":not(:eq(" + next + "))").css({ display: "none", left: 0, zIndex: 0 }); if (_this.data.touch) { _this._setuptouch(); } return _this.options.callback.complete(next + 1); }); } else { return slidesControl.stop().animate({ left: direction }, this.options.effect.slide.speed, (function() { slidesControl.css({ left: 0 }); slidesControl.children(":eq(" + next + ")").css({ left: 0 }); return slidesControl.children(":eq(" + currentSlide + ")").css({ display: "none", left: 0, zIndex: 0 }, $.data(_this, "current", next), $.data(_this, "animating", false), _this.options.callback.complete(next + 1)); })); } } }; Plugin.prototype._fade = function(number) { var $element, currentSlide, next, slidesControl, value, _this = this; $element = $(this.element); this.data = $.data(this); if (!this.data.animating && number !== this.data.current + 1) { $.data(this, "animating", true); currentSlide = this.data.current; if (number) { number = number - 1; value = number > currentSlide ? 1 : -1; next = number; } else { value = this.data.direction === "next" ? 1 : -1; next = currentSlide + value; } if (next === -1) { next = this.data.total - 1; } if (next === this.data.total) { next = 0; } this._setActive(next); slidesControl = $(".slidesjs-control", $element); slidesControl.children(":eq(" + next + ")").css({ display: "none", left: 0, zIndex: 10 }); this.options.callback.start(currentSlide + 1); if (this.options.effect.fade.crossfade) { slidesControl.children(":eq(" + this.data.current + ")").stop().fadeOut(this.options.effect.fade.speed); return slidesControl.children(":eq(" + next + ")").stop().fadeIn(this.options.effect.fade.speed, (function() { slidesControl.children(":eq(" + next + ")").css({ zIndex: 0 }); $.data(_this, "animating", false); $.data(_this, "current", next); return _this.options.callback.complete(next + 1); })); } else { return slidesControl.children(":eq(" + currentSlide + ")").stop().fadeOut(this.options.effect.fade.speed, (function() { slidesControl.children(":eq(" + next + ")").stop().fadeIn(_this.options.effect.fade.speed, (function() { return slidesControl.children(":eq(" + next + ")").css({ zIndex: 10 }); })); $.data(_this, "animating", false); $.data(_this, "current", next); return _this.options.callback.complete(next + 1); })); } } }; Plugin.prototype._getVendorPrefix = function() { var body, i, style, transition, vendor; body = document.body || document.documentElement; style = body.style; transition = "transition"; vendor = ["Moz", "Webkit", "Khtml", "O", "ms"]; transition = transition.charAt(0).toUpperCase() + transition.substr(1); i = 0; while (i < vendor.length) { if (typeof style[vendor[i] + transition] === "string") { return vendor[i]; } i++; } return false; }; return $.fn[pluginName] = function(options) { return this.each(function() { if (!$.data(this, "plugin_" + pluginName)) { return $.data(this, "plugin_" + pluginName, new Plugin(this, options)); } }); }; })(jQuery, window, document); }).call(this);