/* =========================================================== * jquery-immersive-slider.js v1 * =========================================================== * Copyright 2013 Pete Rojwongsuriya. * http://www.thepetedesign.com * * Create an immersive slider that changes the * the whole container to match the viewing slide * * https://github.com/peachananr/immersive-slider * * ========================================================== */ !function($){ var defaults = { animation: "bounce", slideSelector: ".slide", container: ".main", cssBlur: false, pagination: true, loop: true, autoStart: 4000 }; /*------------------------------------------------*/ /* Credit: Eike Send for the awesome swipe event */ /*------------------------------------------------*/ $.fn.swipeEvents = function() { return this.each(function() { var startX, startY, $this = $(this); $this.bind('touchstart', touchstart); function touchstart(event) { var touches = event.originalEvent.touches; if (touches && touches.length) { startX = touches[0].pageX; startY = touches[0].pageY; $this.bind('touchmove', touchmove); } event.preventDefault(); } function touchmove(event) { var touches = event.originalEvent.touches; if (touches && touches.length) { var deltaX = startX - touches[0].pageX; var deltaY = startY - touches[0].pageY; if (deltaX >= 50) { $this.trigger("swipeLeft"); } if (deltaX <= -50) { $this.trigger("swipeRight"); } if (deltaY >= 50) { $this.trigger("swipeUp"); } if (deltaY <= -50) { $this.trigger("swipeDown"); } if (Math.abs(deltaX) >= 50 || Math.abs(deltaY) >= 50) { $this.unbind('touchmove', touchmove); } } event.preventDefault(); } }); }; $.fn.transformSlider = function(settings, pos) { var el = $(this) switch(settings.animation) { case 'slide': el.addClass("ease").css({ "-webkit-transform": "translate3d(" + pos + "%, 0, 0)", "-moz-transform": "translate3d(" + pos + "%, 0, 0)", "-ms-transform": "translate3d(" + pos + "%, 0, 0)", "transform": "translate3d(" + pos + "%, 0, 0)" }); break; case 'slideUp': el.addClass("ease").css({ "-webkit-transform": "translate3d(0, " + pos + "%, 0)", "-moz-transform": "translate3d(0, " + pos + "%, 0)", "-ms-transform": "translate3d(0, " + pos + "%, 0)", "transform": "translate3d(0, " + pos + "%, 0)" }); break; case 'bounce': el.addClass("bounce").css({ "-webkit-transform": "translate3d(" + pos + "%, 0, 0)", "-moz-transform": "translate3d(" + pos + "%, 0, 0)", "-ms-transform": "translate3d(" + pos + "%, 0, 0)", "transform": "translate3d(" + pos + "%, 0, 0)" }); break; case 'bounceUp': el.addClass("bounce").css({ "-webkit-transform": "translate3d(0, " + pos + "%, 0)", "-moz-transform": "translate3d(0, " + pos + "%, 0)", "-ms-transform": "translate3d(0, " + pos + "%, 0)", "transform": "translate3d(0, " + pos + "%, 0)" }); break; case 'fade': el.addClass("no-animation").fadeOut("slow", function() { el.css({ "-webkit-transform": "translate3d(" + pos + "%, 0, 0)", "-moz-transform": "translate3d(" + pos + "%, 0, 0)", "-ms-transform": "translate3d(" + pos + "%, 0, 0)", "transform": "translate3d(" + pos + "%, 0, 0)" }).fadeIn("slow"); }); break; } } $.fn.positionSlides = function(settings, index) { var el = $(this); if (settings.animation == "slideUp" || settings.animation == "bounceUp") { el.css({ top: (index * 100) + "%" }); }else { el.css({ left: (index * 100) + "%" }); } } $.fn.immersive_slider = function(options){ var settings = $.extend({}, defaults, options), el = $(this), cssblur = "", pagination = ""; // Add all the gs sepecific classes el.addClass("immersive_slider") el.find(settings.slideSelector).addClass("is-slide"); // Use CSS to blur the first image the plugin found automatically if (settings.cssBlur == true) { el.find(".is-slide img:first-child").each(function( index ) { var activeclass = "" if(index == 0) activeclass = "active" var img = $(this); $(settings.container).addClass("is-container").prepend("