flexslider 2.0.2 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
- data/README.md +6 -2
- data/lib/flexslider/version.rb +1 -1
- data/vendor/assets/images/bg_play_pause.png +0 -0
- data/vendor/assets/images/fonts/flexslider-icon.eot +0 -0
- data/vendor/assets/images/fonts/flexslider-icon.svg +19 -0
- data/vendor/assets/images/fonts/flexslider-icon.ttf +0 -0
- data/vendor/assets/images/fonts/flexslider-icon.woff +0 -0
- data/vendor/assets/javascripts/jquery.flexslider-min.js +5 -0
- data/vendor/assets/javascripts/{flexslider.js → jquery.flexslider.js} +565 -311
- data/vendor/assets/stylesheets/flexslider.css.scss +96 -0
- metadata +28 -10
- data/vendor/assets/stylesheets/flexslider.css +0 -75
checksums.yaml
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
!binary "U0hBMQ==":
|
|
3
|
+
metadata.gz: !binary |-
|
|
4
|
+
ZDhiZTgxZGIzNDM0NGEzMGYxNmExY2MzZmU2OTFiODk1NzNhZmY0Mg==
|
|
5
|
+
data.tar.gz: !binary |-
|
|
6
|
+
M2MzYzZlODU2OGI0NTdkOTI0NjNlOGMxODhiNzI3Yjk2YzgxMDE5MQ==
|
|
7
|
+
SHA512:
|
|
8
|
+
metadata.gz: !binary |-
|
|
9
|
+
ZDc1OWUzOGVjYzBhMTAwNzVkNmY5NjI1YmY3MWE2OTU5MzUwOGYzMjUxZjZm
|
|
10
|
+
MTU0ODg5OTRhNTI5MjczZmNlMDBhZTZjMWU1MTAzYTMwZjZhMTExMDJmMjA1
|
|
11
|
+
YjcxNzMzYmE1ZWNjNTBjMTM1OTU5ZTA3Nzc2NTBkMjVkODM5MWQ=
|
|
12
|
+
data.tar.gz: !binary |-
|
|
13
|
+
ZTBlNmE4ZjBkZmM5MzUzYzk0OGYwMDE0ZGNlOTVkMDU0MzJjY2E0ZjZjMmNm
|
|
14
|
+
YjQyNjY5Njg2YjI0YjgwMDcwY2U4MTcyMGVmMWZlOGZiMTEwYzMyNmQ4NzQx
|
|
15
|
+
OTU1MzEwNmJjZDljYTA3Y2Y4OTFkMDc2NTE4MDA1NmEzZDBiNDI=
|
data/README.md
CHANGED
|
@@ -24,7 +24,11 @@ Flexslider 2 is dependant on jQuery, so make sure you have it in your Gemfile.
|
|
|
24
24
|
|
|
25
25
|
Add to your app/assets/javascripts/application.js
|
|
26
26
|
|
|
27
|
-
//= require flexslider
|
|
27
|
+
//= require jquery.flexslider
|
|
28
|
+
|
|
29
|
+
Or for the minified version
|
|
30
|
+
|
|
31
|
+
//= require jquery.flexslider-min
|
|
28
32
|
|
|
29
33
|
And to your app/assets/stylesheets/application.css
|
|
30
34
|
|
|
@@ -35,4 +39,4 @@ And to your app/assets/stylesheets/application.css
|
|
|
35
39
|
Usage documentation as well as demos can be found at:
|
|
36
40
|
|
|
37
41
|
https://github.com/woothemes/FlexSlider
|
|
38
|
-
http://www.woothemes.com/flexslider/
|
|
42
|
+
http://www.woothemes.com/flexslider/
|
data/lib/flexslider/version.rb
CHANGED
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<?xml version="1.0" standalone="no"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
|
3
|
+
<svg xmlns="http://www.w3.org/2000/svg">
|
|
4
|
+
<metadata>
|
|
5
|
+
This is a custom SVG font generated by IcoMoon.
|
|
6
|
+
<iconset grid="14"></iconset>
|
|
7
|
+
</metadata>
|
|
8
|
+
<defs>
|
|
9
|
+
<font id="flexslider-icon" horiz-adv-x="448" >
|
|
10
|
+
<font-face units-per-em="448" ascent="384" descent="-64" />
|
|
11
|
+
<missing-glyph horiz-adv-x="448" />
|
|
12
|
+
<glyph unicode="" d="M 185.50-9.25l-163.00,162.75q-9.25,9.25 -9.25,22.625t 9.25,22.625l 163.00,162.75q 9.25,9.25 22.625,9.25t 22.625-9.25l 18.75-18.75q 9.25-9.25 9.25-22.625t-9.25-22.625l-121.50-121.50l 121.50-121.25q 9.25-9.50 9.25-22.75t-9.25-22.50l-18.75-18.75q-9.25-9.25 -22.625-9.25t-22.625,9.25z" horiz-adv-x="288" />
|
|
13
|
+
<glyph unicode="" d="M 274.75,176.00q0.00-13.00 -9.25-22.75l-163.00-162.75q-9.25-9.25 -22.50-9.25t-22.50,9.25l-19.00,18.75q-9.25,9.75 -9.25,22.75q0.00,13.25 9.25,22.50l 121.50,121.50l-121.50,121.25q-9.25,9.75 -9.25,22.75q0.00,13.25 9.25,22.50l 19.00,18.75q 9.00,9.50 22.50,9.50t 22.50-9.50l 163.00-162.75q 9.25-9.25 9.25-22.50z" horiz-adv-x="288" />
|
|
14
|
+
<glyph unicode="" d="M 346.00,152.25l-332.00-184.50q-5.75-3.25 -9.875-0.75t-4.125,9.00l0.00,368.00 q0.00,6.50 4.125,9.00t 9.875-0.75l 332.00-184.50q 5.75-3.25 5.75-7.75t-5.75-7.75z" horiz-adv-x="352" />
|
|
15
|
+
<glyph unicode="" d="M 384.00,336.00l0.00-352.00 q0.00-6.50 -4.75-11.25t-11.25-4.75l-128.00,0.00 q-6.50,0.00 -11.25,4.75t-4.75,11.25l0.00,352.00 q0.00,6.50 4.75,11.25t 11.25,4.75l 128.00,0.00 q 6.50,0.00 11.25-4.75t 4.75-11.25zM 160.00,336.00l0.00-352.00 q0.00-6.50 -4.75-11.25t-11.25-4.75l-128.00,0.00 q-6.50,0.00 -11.25,4.75t-4.75,11.25l0.00,352.00 q0.00,6.50 4.75,11.25t 11.25,4.75l 128.00,0.00 q 6.50,0.00 11.25-4.75t 4.75-11.25z" horiz-adv-x="384" />
|
|
16
|
+
<glyph unicode="" d="M 402.75,208.00q0.00-13.25 -9.25-22.50l-162.75-162.75q-9.50-9.50 -22.75-9.50q-13.50,0.00 -22.50,9.50l-162.75,162.75q-9.50,9.00 -9.50,22.50q0.00,13.25 9.50,22.75l 18.50,18.75q 9.75,9.25 22.75,9.25q 13.25,0.00 22.50-9.25l 121.50-121.50l 121.50,121.50q 9.25,9.25 22.50,9.25q 13.00,0.00 22.75-9.25l 18.75-18.75q 9.25-9.75 9.25-22.75z" horiz-adv-x="416" />
|
|
17
|
+
<glyph unicode=" " horiz-adv-x="224" />
|
|
18
|
+
<glyph class="hidden" unicode="" d="M0,384L 448 -64L0 -64 z" horiz-adv-x="0" />
|
|
19
|
+
</font></defs></svg>
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* jQuery FlexSlider v2.2.0
|
|
3
|
+
* Copyright 2012 WooThemes
|
|
4
|
+
* Contributing Author: Tyler Smith
|
|
5
|
+
*/(function(e){e.flexslider=function(t,n){var r=e(t);r.vars=e.extend({},e.flexslider.defaults,n);var i=r.vars.namespace,s=window.navigator&&window.navigator.msPointerEnabled&&window.MSGesture,o=("ontouchstart"in window||s||window.DocumentTouch&&document instanceof DocumentTouch)&&r.vars.touch,u="click touchend MSPointerUp",a="",f,l=r.vars.direction==="vertical",c=r.vars.reverse,h=r.vars.itemWidth>0,p=r.vars.animation==="fade",d=r.vars.asNavFor!=="",v={},m=!0;e.data(t,"flexslider",r);v={init:function(){r.animating=!1;r.currentSlide=parseInt(r.vars.startAt?r.vars.startAt:0);isNaN(r.currentSlide)&&(r.currentSlide=0);r.animatingTo=r.currentSlide;r.atEnd=r.currentSlide===0||r.currentSlide===r.last;r.containerSelector=r.vars.selector.substr(0,r.vars.selector.search(" "));r.slides=e(r.vars.selector,r);r.container=e(r.containerSelector,r);r.count=r.slides.length;r.syncExists=e(r.vars.sync).length>0;r.vars.animation==="slide"&&(r.vars.animation="swing");r.prop=l?"top":"marginLeft";r.args={};r.manualPause=!1;r.stopped=!1;r.started=!1;r.startTimeout=null;r.transitions=!r.vars.video&&!p&&r.vars.useCSS&&function(){var e=document.createElement("div"),t=["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var n in t)if(e.style[t[n]]!==undefined){r.pfx=t[n].replace("Perspective","").toLowerCase();r.prop="-"+r.pfx+"-transform";return!0}return!1}();r.vars.controlsContainer!==""&&(r.controlsContainer=e(r.vars.controlsContainer).length>0&&e(r.vars.controlsContainer));r.vars.manualControls!==""&&(r.manualControls=e(r.vars.manualControls).length>0&&e(r.vars.manualControls));if(r.vars.randomize){r.slides.sort(function(){return Math.round(Math.random())-.5});r.container.empty().append(r.slides)}r.doMath();r.setup("init");r.vars.controlNav&&v.controlNav.setup();r.vars.directionNav&&v.directionNav.setup();r.vars.keyboard&&(e(r.containerSelector).length===1||r.vars.multipleKeyboard)&&e(document).bind("keyup",function(e){var t=e.keyCode;if(!r.animating&&(t===39||t===37)){var n=t===39?r.getTarget("next"):t===37?r.getTarget("prev"):!1;r.flexAnimate(n,r.vars.pauseOnAction)}});r.vars.mousewheel&&r.bind("mousewheel",function(e,t,n,i){e.preventDefault();var s=t<0?r.getTarget("next"):r.getTarget("prev");r.flexAnimate(s,r.vars.pauseOnAction)});r.vars.pausePlay&&v.pausePlay.setup();r.vars.slideshow&&r.vars.pauseInvisible&&v.pauseInvisible.init();if(r.vars.slideshow){r.vars.pauseOnHover&&r.hover(function(){!r.manualPlay&&!r.manualPause&&r.pause()},function(){!r.manualPause&&!r.manualPlay&&!r.stopped&&r.play()});if(!r.vars.pauseInvisible||!v.pauseInvisible.isHidden())r.vars.initDelay>0?r.startTimeout=setTimeout(r.play,r.vars.initDelay):r.play()}d&&v.asNav.setup();o&&r.vars.touch&&v.touch();(!p||p&&r.vars.smoothHeight)&&e(window).bind("resize orientationchange focus",v.resize);r.find("img").attr("draggable","false");setTimeout(function(){r.vars.start(r)},200)},asNav:{setup:function(){r.asNav=!0;r.animatingTo=Math.floor(r.currentSlide/r.move);r.currentItem=r.currentSlide;r.slides.removeClass(i+"active-slide").eq(r.currentItem).addClass(i+"active-slide");if(!s)r.slides.click(function(t){t.preventDefault();var n=e(this),s=n.index(),o=n.offset().left-e(r).scrollLeft();if(o<=0&&n.hasClass(i+"active-slide"))r.flexAnimate(r.getTarget("prev"),!0);else if(!e(r.vars.asNavFor).data("flexslider").animating&&!n.hasClass(i+"active-slide")){r.direction=r.currentItem<s?"next":"prev";r.flexAnimate(s,r.vars.pauseOnAction,!1,!0,!0)}});else{t._slider=r;r.slides.each(function(){var t=this;t._gesture=new MSGesture;t._gesture.target=t;t.addEventListener("MSPointerDown",function(e){e.preventDefault();e.currentTarget._gesture&&e.currentTarget._gesture.addPointer(e.pointerId)},!1);t.addEventListener("MSGestureTap",function(t){t.preventDefault();var n=e(this),i=n.index();if(!e(r.vars.asNavFor).data("flexslider").animating&&!n.hasClass("active")){r.direction=r.currentItem<i?"next":"prev";r.flexAnimate(i,r.vars.pauseOnAction,!1,!0,!0)}})})}}},controlNav:{setup:function(){r.manualControls?v.controlNav.setupManual():v.controlNav.setupPaging()},setupPaging:function(){var t=r.vars.controlNav==="thumbnails"?"control-thumbs":"control-paging",n=1,s,o;r.controlNavScaffold=e('<ol class="'+i+"control-nav "+i+t+'"></ol>');if(r.pagingCount>1)for(var f=0;f<r.pagingCount;f++){o=r.slides.eq(f);s=r.vars.controlNav==="thumbnails"?'<img src="'+o.attr("data-thumb")+'"/>':"<a>"+n+"</a>";if("thumbnails"===r.vars.controlNav&&!0===r.vars.thumbCaptions){var l=o.attr("data-thumbcaption");""!=l&&undefined!=l&&(s+='<span class="'+i+'caption">'+l+"</span>")}r.controlNavScaffold.append("<li>"+s+"</li>");n++}r.controlsContainer?e(r.controlsContainer).append(r.controlNavScaffold):r.append(r.controlNavScaffold);v.controlNav.set();v.controlNav.active();r.controlNavScaffold.delegate("a, img",u,function(t){t.preventDefault();if(a===""||a===t.type){var n=e(this),s=r.controlNav.index(n);if(!n.hasClass(i+"active")){r.direction=s>r.currentSlide?"next":"prev";r.flexAnimate(s,r.vars.pauseOnAction)}}a===""&&(a=t.type);v.setToClearWatchedEvent()})},setupManual:function(){r.controlNav=r.manualControls;v.controlNav.active();r.controlNav.bind(u,function(t){t.preventDefault();if(a===""||a===t.type){var n=e(this),s=r.controlNav.index(n);if(!n.hasClass(i+"active")){s>r.currentSlide?r.direction="next":r.direction="prev";r.flexAnimate(s,r.vars.pauseOnAction)}}a===""&&(a=t.type);v.setToClearWatchedEvent()})},set:function(){var t=r.vars.controlNav==="thumbnails"?"img":"a";r.controlNav=e("."+i+"control-nav li "+t,r.controlsContainer?r.controlsContainer:r)},active:function(){r.controlNav.removeClass(i+"active").eq(r.animatingTo).addClass(i+"active")},update:function(t,n){r.pagingCount>1&&t==="add"?r.controlNavScaffold.append(e("<li><a>"+r.count+"</a></li>")):r.pagingCount===1?r.controlNavScaffold.find("li").remove():r.controlNav.eq(n).closest("li").remove();v.controlNav.set();r.pagingCount>1&&r.pagingCount!==r.controlNav.length?r.update(n,t):v.controlNav.active()}},directionNav:{setup:function(){var t=e('<ul class="'+i+'direction-nav"><li><a class="'+i+'prev" href="#">'+r.vars.prevText+'</a></li><li><a class="'+i+'next" href="#">'+r.vars.nextText+"</a></li></ul>");if(r.controlsContainer){e(r.controlsContainer).append(t);r.directionNav=e("."+i+"direction-nav li a",r.controlsContainer)}else{r.append(t);r.directionNav=e("."+i+"direction-nav li a",r)}v.directionNav.update();r.directionNav.bind(u,function(t){t.preventDefault();var n;if(a===""||a===t.type){n=e(this).hasClass(i+"next")?r.getTarget("next"):r.getTarget("prev");r.flexAnimate(n,r.vars.pauseOnAction)}a===""&&(a=t.type);v.setToClearWatchedEvent()})},update:function(){var e=i+"disabled";r.pagingCount===1?r.directionNav.addClass(e).attr("tabindex","-1"):r.vars.animationLoop?r.directionNav.removeClass(e).removeAttr("tabindex"):r.animatingTo===0?r.directionNav.removeClass(e).filter("."+i+"prev").addClass(e).attr("tabindex","-1"):r.animatingTo===r.last?r.directionNav.removeClass(e).filter("."+i+"next").addClass(e).attr("tabindex","-1"):r.directionNav.removeClass(e).removeAttr("tabindex")}},pausePlay:{setup:function(){var t=e('<div class="'+i+'pauseplay"><a></a></div>');if(r.controlsContainer){r.controlsContainer.append(t);r.pausePlay=e("."+i+"pauseplay a",r.controlsContainer)}else{r.append(t);r.pausePlay=e("."+i+"pauseplay a",r)}v.pausePlay.update(r.vars.slideshow?i+"pause":i+"play");r.pausePlay.bind(u,function(t){t.preventDefault();if(a===""||a===t.type)if(e(this).hasClass(i+"pause")){r.manualPause=!0;r.manualPlay=!1;r.pause()}else{r.manualPause=!1;r.manualPlay=!0;r.play()}a===""&&(a=t.type);v.setToClearWatchedEvent()})},update:function(e){e==="play"?r.pausePlay.removeClass(i+"pause").addClass(i+"play").html(r.vars.playText):r.pausePlay.removeClass(i+"play").addClass(i+"pause").html(r.vars.pauseText)}},touch:function(){var e,n,i,o,u,a,f=!1,d=0,v=0,m=0;if(!s){t.addEventListener("touchstart",g,!1);function g(s){if(r.animating)s.preventDefault();else if(window.navigator.msPointerEnabled||s.touches.length===1){r.pause();o=l?r.h:r.w;a=Number(new Date);d=s.touches[0].pageX;v=s.touches[0].pageY;i=h&&c&&r.animatingTo===r.last?0:h&&c?r.limit-(r.itemW+r.vars.itemMargin)*r.move*r.animatingTo:h&&r.currentSlide===r.last?r.limit:h?(r.itemW+r.vars.itemMargin)*r.move*r.currentSlide:c?(r.last-r.currentSlide+r.cloneOffset)*o:(r.currentSlide+r.cloneOffset)*o;e=l?v:d;n=l?d:v;t.addEventListener("touchmove",y,!1);t.addEventListener("touchend",b,!1)}}function y(t){d=t.touches[0].pageX;v=t.touches[0].pageY;u=l?e-v:e-d;f=l?Math.abs(u)<Math.abs(d-n):Math.abs(u)<Math.abs(v-n);var s=500;if(!f||Number(new Date)-a>s){t.preventDefault();if(!p&&r.transitions){r.vars.animationLoop||(u/=r.currentSlide===0&&u<0||r.currentSlide===r.last&&u>0?Math.abs(u)/o+2:1);r.setProps(i+u,"setTouch")}}}function b(s){t.removeEventListener("touchmove",y,!1);if(r.animatingTo===r.currentSlide&&!f&&u!==null){var l=c?-u:u,h=l>0?r.getTarget("next"):r.getTarget("prev");r.canAdvance(h)&&(Number(new Date)-a<550&&Math.abs(l)>50||Math.abs(l)>o/2)?r.flexAnimate(h,r.vars.pauseOnAction):p||r.flexAnimate(r.currentSlide,r.vars.pauseOnAction,!0)}t.removeEventListener("touchend",b,!1);e=null;n=null;u=null;i=null}}else{t.style.msTouchAction="none";t._gesture=new MSGesture;t._gesture.target=t;t.addEventListener("MSPointerDown",w,!1);t._slider=r;t.addEventListener("MSGestureChange",E,!1);t.addEventListener("MSGestureEnd",S,!1);function w(e){e.stopPropagation();if(r.animating)e.preventDefault();else{r.pause();t._gesture.addPointer(e.pointerId);m=0;o=l?r.h:r.w;a=Number(new Date);i=h&&c&&r.animatingTo===r.last?0:h&&c?r.limit-(r.itemW+r.vars.itemMargin)*r.move*r.animatingTo:h&&r.currentSlide===r.last?r.limit:h?(r.itemW+r.vars.itemMargin)*r.move*r.currentSlide:c?(r.last-r.currentSlide+r.cloneOffset)*o:(r.currentSlide+r.cloneOffset)*o}}function E(e){e.stopPropagation();var n=e.target._slider;if(!n)return;var r=-e.translationX,s=-e.translationY;m+=l?s:r;u=m;f=l?Math.abs(m)<Math.abs(-r):Math.abs(m)<Math.abs(-s);if(e.detail===e.MSGESTURE_FLAG_INERTIA){setImmediate(function(){t._gesture.stop()});return}if(!f||Number(new Date)-a>500){e.preventDefault();if(!p&&n.transitions){n.vars.animationLoop||(u=m/(n.currentSlide===0&&m<0||n.currentSlide===n.last&&m>0?Math.abs(m)/o+2:1));n.setProps(i+u,"setTouch")}}}function S(t){t.stopPropagation();var r=t.target._slider;if(!r)return;if(r.animatingTo===r.currentSlide&&!f&&u!==null){var s=c?-u:u,l=s>0?r.getTarget("next"):r.getTarget("prev");r.canAdvance(l)&&(Number(new Date)-a<550&&Math.abs(s)>50||Math.abs(s)>o/2)?r.flexAnimate(l,r.vars.pauseOnAction):p||r.flexAnimate(r.currentSlide,r.vars.pauseOnAction,!0)}e=null;n=null;u=null;i=null;m=0}}},resize:function(){if(!r.animating&&r.is(":visible")){h||r.doMath();if(p)v.smoothHeight();else if(h){r.slides.width(r.computedW);r.update(r.pagingCount);r.setProps()}else if(l){r.viewport.height(r.h);r.setProps(r.h,"setTotal")}else{r.vars.smoothHeight&&v.smoothHeight();r.newSlides.width(r.computedW);r.setProps(r.computedW,"setTotal")}}},smoothHeight:function(e){if(!l||p){var t=p?r:r.viewport;e?t.animate({height:r.slides.eq(r.animatingTo).height()},e):t.height(r.slides.eq(r.animatingTo).height())}},sync:function(t){var n=e(r.vars.sync).data("flexslider"),i=r.animatingTo;switch(t){case"animate":n.flexAnimate(i,r.vars.pauseOnAction,!1,!0);break;case"play":!n.playing&&!n.asNav&&n.play();break;case"pause":n.pause()}},pauseInvisible:{visProp:null,init:function(){var e=["webkit","moz","ms","o"];if("hidden"in document)return"hidden";for(var t=0;t<e.length;t++)e[t]+"Hidden"in document&&(v.pauseInvisible.visProp=e[t]+"Hidden");if(v.pauseInvisible.visProp){var n=v.pauseInvisible.visProp.replace(/[H|h]idden/,"")+"visibilitychange";document.addEventListener(n,function(){v.pauseInvisible.isHidden()?r.startTimeout?clearTimeout(r.startTimeout):r.pause():r.started?r.play():r.vars.initDelay>0?setTimeout(r.play,r.vars.initDelay):r.play()})}},isHidden:function(){return document[v.pauseInvisible.visProp]||!1}},setToClearWatchedEvent:function(){clearTimeout(f);f=setTimeout(function(){a=""},3e3)}};r.flexAnimate=function(t,n,s,u,a){!r.vars.animationLoop&&t!==r.currentSlide&&(r.direction=t>r.currentSlide?"next":"prev");d&&r.pagingCount===1&&(r.direction=r.currentItem<t?"next":"prev");if(!r.animating&&(r.canAdvance(t,a)||s)&&r.is(":visible")){if(d&&u){var f=e(r.vars.asNavFor).data("flexslider");r.atEnd=t===0||t===r.count-1;f.flexAnimate(t,!0,!1,!0,a);r.direction=r.currentItem<t?"next":"prev";f.direction=r.direction;if(Math.ceil((t+1)/r.visible)-1===r.currentSlide||t===0){r.currentItem=t;r.slides.removeClass(i+"active-slide").eq(t).addClass(i+"active-slide");return!1}r.currentItem=t;r.slides.removeClass(i+"active-slide").eq(t).addClass(i+"active-slide");t=Math.floor(t/r.visible)}r.animating=!0;r.animatingTo=t;n&&r.pause();r.vars.before(r);r.syncExists&&!a&&v.sync("animate");r.vars.controlNav&&v.controlNav.active();h||r.slides.removeClass(i+"active-slide").eq(t).addClass(i+"active-slide");r.atEnd=t===0||t===r.last;r.vars.directionNav&&v.directionNav.update();if(t===r.last){r.vars.end(r);r.vars.animationLoop||r.pause()}if(!p){var m=l?r.slides.filter(":first").height():r.computedW,g,y,b;if(h){g=r.vars.itemMargin;b=(r.itemW+g)*r.move*r.animatingTo;y=b>r.limit&&r.visible!==1?r.limit:b}else r.currentSlide===0&&t===r.count-1&&r.vars.animationLoop&&r.direction!=="next"?y=c?(r.count+r.cloneOffset)*m:0:r.currentSlide===r.last&&t===0&&r.vars.animationLoop&&r.direction!=="prev"?y=c?0:(r.count+1)*m:y=c?(r.count-1-t+r.cloneOffset)*m:(t+r.cloneOffset)*m;r.setProps(y,"",r.vars.animationSpeed);if(r.transitions){if(!r.vars.animationLoop||!r.atEnd){r.animating=!1;r.currentSlide=r.animatingTo}r.container.unbind("webkitTransitionEnd transitionend");r.container.bind("webkitTransitionEnd transitionend",function(){r.wrapup(m)})}else r.container.animate(r.args,r.vars.animationSpeed,r.vars.easing,function(){r.wrapup(m)})}else if(!o){r.slides.eq(r.currentSlide).css({zIndex:1}).animate({opacity:0},r.vars.animationSpeed,r.vars.easing);r.slides.eq(t).css({zIndex:2}).animate({opacity:1},r.vars.animationSpeed,r.vars.easing,r.wrapup)}else{r.slides.eq(r.currentSlide).css({opacity:0,zIndex:1});r.slides.eq(t).css({opacity:1,zIndex:2});r.wrapup(m)}r.vars.smoothHeight&&v.smoothHeight(r.vars.animationSpeed)}};r.wrapup=function(e){!p&&!h&&(r.currentSlide===0&&r.animatingTo===r.last&&r.vars.animationLoop?r.setProps(e,"jumpEnd"):r.currentSlide===r.last&&r.animatingTo===0&&r.vars.animationLoop&&r.setProps(e,"jumpStart"));r.animating=!1;r.currentSlide=r.animatingTo;r.vars.after(r)};r.animateSlides=function(){!r.animating&&m&&r.flexAnimate(r.getTarget("next"))};r.pause=function(){clearInterval(r.animatedSlides);r.animatedSlides=null;r.playing=!1;r.vars.pausePlay&&v.pausePlay.update("play");r.syncExists&&v.sync("pause")};r.play=function(){r.playing&&clearInterval(r.animatedSlides);r.animatedSlides=r.animatedSlides||setInterval(r.animateSlides,r.vars.slideshowSpeed);r.started=r.playing=!0;r.vars.pausePlay&&v.pausePlay.update("pause");r.syncExists&&v.sync("play")};r.stop=function(){r.pause();r.stopped=!0};r.canAdvance=function(e,t){var n=d?r.pagingCount-1:r.last;return t?!0:d&&r.currentItem===r.count-1&&e===0&&r.direction==="prev"?!0:d&&r.currentItem===0&&e===r.pagingCount-1&&r.direction!=="next"?!1:e===r.currentSlide&&!d?!1:r.vars.animationLoop?!0:r.atEnd&&r.currentSlide===0&&e===n&&r.direction!=="next"?!1:r.atEnd&&r.currentSlide===n&&e===0&&r.direction==="next"?!1:!0};r.getTarget=function(e){r.direction=e;return e==="next"?r.currentSlide===r.last?0:r.currentSlide+1:r.currentSlide===0?r.last:r.currentSlide-1};r.setProps=function(e,t,n){var i=function(){var n=e?e:(r.itemW+r.vars.itemMargin)*r.move*r.animatingTo,i=function(){if(h)return t==="setTouch"?e:c&&r.animatingTo===r.last?0:c?r.limit-(r.itemW+r.vars.itemMargin)*r.move*r.animatingTo:r.animatingTo===r.last?r.limit:n;switch(t){case"setTotal":return c?(r.count-1-r.currentSlide+r.cloneOffset)*e:(r.currentSlide+r.cloneOffset)*e;case"setTouch":return c?e:e;case"jumpEnd":return c?e:r.count*e;case"jumpStart":return c?r.count*e:e;default:return e}}();return i*-1+"px"}();if(r.transitions){i=l?"translate3d(0,"+i+",0)":"translate3d("+i+",0,0)";n=n!==undefined?n/1e3+"s":"0s";r.container.css("-"+r.pfx+"-transition-duration",n)}r.args[r.prop]=i;(r.transitions||n===undefined)&&r.container.css(r.args)};r.setup=function(t){if(!p){var n,s;if(t==="init"){r.viewport=e('<div class="'+i+'viewport"></div>').css({overflow:"hidden",position:"relative"}).appendTo(r).append(r.container);r.cloneCount=0;r.cloneOffset=0;if(c){s=e.makeArray(r.slides).reverse();r.slides=e(s);r.container.empty().append(r.slides)}}if(r.vars.animationLoop&&!h){r.cloneCount=2;r.cloneOffset=1;t!=="init"&&r.container.find(".clone").remove();r.container.append(r.slides.first().clone().addClass("clone").attr("aria-hidden","true")).prepend(r.slides.last().clone().addClass("clone").attr("aria-hidden","true"))}r.newSlides=e(r.vars.selector,r);n=c?r.count-1-r.currentSlide+r.cloneOffset:r.currentSlide+r.cloneOffset;if(l&&!h){r.container.height((r.count+r.cloneCount)*200+"%").css("position","absolute").width("100%");setTimeout(function(){r.newSlides.css({display:"block"});r.doMath();r.viewport.height(r.h);r.setProps(n*r.h,"init")},t==="init"?100:0)}else{r.container.width((r.count+r.cloneCount)*200+"%");r.setProps(n*r.computedW,"init");setTimeout(function(){r.doMath();r.newSlides.css({width:r.computedW,"float":"left",display:"block"});r.vars.smoothHeight&&v.smoothHeight()},t==="init"?100:0)}}else{r.slides.css({width:"100%","float":"left",marginRight:"-100%",position:"relative"});t==="init"&&(o?r.slides.css({opacity:0,display:"block",webkitTransition:"opacity "+r.vars.animationSpeed/1e3+"s ease",zIndex:1}).eq(r.currentSlide).css({opacity:1,zIndex:2}):r.slides.css({opacity:0,display:"block",zIndex:1}).eq(r.currentSlide).css({zIndex:2}).animate({opacity:1},r.vars.animationSpeed,r.vars.easing));r.vars.smoothHeight&&v.smoothHeight()}h||r.slides.removeClass(i+"active-slide").eq(r.currentSlide).addClass(i+"active-slide")};r.doMath=function(){var e=r.slides.first(),t=r.vars.itemMargin,n=r.vars.minItems,i=r.vars.maxItems;r.w=r.viewport===undefined?r.width():r.viewport.width();r.h=e.height();r.boxPadding=e.outerWidth()-e.width();if(h){r.itemT=r.vars.itemWidth+t;r.minW=n?n*r.itemT:r.w;r.maxW=i?i*r.itemT-t:r.w;r.itemW=r.minW>r.w?(r.w-t*(n-1))/n:r.maxW<r.w?(r.w-t*(i-1))/i:r.vars.itemWidth>r.w?r.w:r.vars.itemWidth;r.visible=Math.floor(r.w/r.itemW);r.move=r.vars.move>0&&r.vars.move<r.visible?r.vars.move:r.visible;r.pagingCount=Math.ceil((r.count-r.visible)/r.move+1);r.last=r.pagingCount-1;r.limit=r.pagingCount===1?0:r.vars.itemWidth>r.w?r.itemW*(r.count-1)+t*(r.count-1):(r.itemW+t)*r.count-r.w-t}else{r.itemW=r.w;r.pagingCount=r.count;r.last=r.count-1}r.computedW=r.itemW-r.boxPadding};r.update=function(e,t){r.doMath();if(!h){e<r.currentSlide?r.currentSlide+=1:e<=r.currentSlide&&e!==0&&(r.currentSlide-=1);r.animatingTo=r.currentSlide}if(r.vars.controlNav&&!r.manualControls)if(t==="add"&&!h||r.pagingCount>r.controlNav.length)v.controlNav.update("add");else if(t==="remove"&&!h||r.pagingCount<r.controlNav.length){if(h&&r.currentSlide>r.last){r.currentSlide-=1;r.animatingTo-=1}v.controlNav.update("remove",r.last)}r.vars.directionNav&&v.directionNav.update()};r.addSlide=function(t,n){var i=e(t);r.count+=1;r.last=r.count-1;l&&c?n!==undefined?r.slides.eq(r.count-n).after(i):r.container.prepend(i):n!==undefined?r.slides.eq(n).before(i):r.container.append(i);r.update(n,"add");r.slides=e(r.vars.selector+":not(.clone)",r);r.setup();r.vars.added(r)};r.removeSlide=function(t){var n=isNaN(t)?r.slides.index(e(t)):t;r.count-=1;r.last=r.count-1;isNaN(t)?e(t,r.slides).remove():l&&c?r.slides.eq(r.last).remove():r.slides.eq(t).remove();r.doMath();r.update(n,"remove");r.slides=e(r.vars.selector+":not(.clone)",r);r.setup();r.vars.removed(r)};v.init()};e(window).blur(function(e){focused=!1}).focus(function(e){focused=!0});e.flexslider.defaults={namespace:"flex-",selector:".slides > li",animation:"fade",easing:"swing",direction:"horizontal",reverse:!1,animationLoop:!0,smoothHeight:!1,startAt:0,slideshow:!0,slideshowSpeed:7e3,animationSpeed:600,initDelay:0,randomize:!1,thumbCaptions:!1,pauseOnAction:!0,pauseOnHover:!1,pauseInvisible:!0,useCSS:!0,touch:!0,video:!1,controlNav:!0,directionNav:!0,prevText:"Previous",nextText:"Next",keyboard:!0,multipleKeyboard:!1,mousewheel:!1,pausePlay:!1,pauseText:"Pause",playText:"Play",controlsContainer:"",manualControls:"",sync:"",asNavFor:"",itemWidth:0,itemMargin:0,minItems:1,maxItems:0,move:0,allowOneSlide:!0,start:function(){},before:function(){},after:function(){},end:function(){},added:function(){},removed:function(){}};e.fn.flexslider=function(t){t===undefined&&(t={});if(typeof t=="object")return this.each(function(){var n=e(this),r=t.selector?t.selector:".slides > li",i=n.find(r);if(i.length===1&&t.allowOneSlide===!0||i.length===0){i.fadeIn(400);t.start&&t.start(n)}else n.data("flexslider")===undefined&&new e.flexslider(this,t)});var n=e(this).data("flexslider");switch(t){case"play":n.play();break;case"pause":n.pause();break;case"stop":n.stop();break;case"next":n.flexAnimate(n.getTarget("next"),!0);break;case"prev":case"previous":n.flexAnimate(n.getTarget("prev"),!0);break;default:typeof t=="number"&&n.flexAnimate(t,!0)}}})(jQuery);
|
|
@@ -1,54 +1,64 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* jQuery FlexSlider v2.0
|
|
3
|
-
* http://www.woothemes.com/flexslider/
|
|
4
|
-
*
|
|
2
|
+
* jQuery FlexSlider v2.2.0
|
|
5
3
|
* Copyright 2012 WooThemes
|
|
6
|
-
*
|
|
7
|
-
* http://www.gnu.org/licenses/gpl-2.0.html
|
|
8
|
-
*
|
|
9
|
-
* Contributing author: Tyler Smith (@mbmufffin)
|
|
4
|
+
* Contributing Author: Tyler Smith
|
|
10
5
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
;
|
|
7
|
+
(function ($) {
|
|
13
8
|
|
|
14
9
|
//FlexSlider: Object Instance
|
|
15
10
|
$.flexslider = function(el, options) {
|
|
16
|
-
var slider = $(el)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
11
|
+
var slider = $(el);
|
|
12
|
+
|
|
13
|
+
// making variables public
|
|
14
|
+
slider.vars = $.extend({}, $.flexslider.defaults, options);
|
|
15
|
+
|
|
16
|
+
var namespace = slider.vars.namespace,
|
|
17
|
+
msGesture = window.navigator && window.navigator.msPointerEnabled && window.MSGesture,
|
|
18
|
+
touch = (( "ontouchstart" in window ) || msGesture || window.DocumentTouch && document instanceof DocumentTouch) && slider.vars.touch,
|
|
19
|
+
// depricating this idea, as devices are being released with both of these events
|
|
20
|
+
//eventType = (touch) ? "touchend" : "click",
|
|
21
|
+
eventType = "click touchend MSPointerUp",
|
|
22
|
+
watchedEvent = "",
|
|
23
|
+
watchedEventClearTimer,
|
|
24
|
+
vertical = slider.vars.direction === "vertical",
|
|
25
|
+
reverse = slider.vars.reverse,
|
|
26
|
+
carousel = (slider.vars.itemWidth > 0),
|
|
27
|
+
fade = slider.vars.animation === "fade",
|
|
28
|
+
asNav = slider.vars.asNavFor !== "",
|
|
29
|
+
methods = {},
|
|
30
|
+
focused = true;
|
|
31
|
+
|
|
28
32
|
// Store a reference to the slider object
|
|
29
33
|
$.data(el, "flexslider", slider);
|
|
30
|
-
|
|
31
|
-
//
|
|
34
|
+
|
|
35
|
+
// Private slider methods
|
|
32
36
|
methods = {
|
|
33
37
|
init: function() {
|
|
34
38
|
slider.animating = false;
|
|
35
|
-
|
|
39
|
+
// Get current slide and make sure it is a number
|
|
40
|
+
slider.currentSlide = parseInt( ( slider.vars.startAt ? slider.vars.startAt : 0) );
|
|
41
|
+
if ( isNaN( slider.currentSlide ) ) slider.currentSlide = 0;
|
|
36
42
|
slider.animatingTo = slider.currentSlide;
|
|
37
43
|
slider.atEnd = (slider.currentSlide === 0 || slider.currentSlide === slider.last);
|
|
38
|
-
slider.containerSelector = vars.selector.substr(0,vars.selector.search(' '));
|
|
39
|
-
slider.slides = $(vars.selector, slider);
|
|
44
|
+
slider.containerSelector = slider.vars.selector.substr(0,slider.vars.selector.search(' '));
|
|
45
|
+
slider.slides = $(slider.vars.selector, slider);
|
|
40
46
|
slider.container = $(slider.containerSelector, slider);
|
|
41
47
|
slider.count = slider.slides.length;
|
|
42
48
|
// SYNC:
|
|
43
|
-
slider.syncExists = $(vars.sync).length > 0;
|
|
49
|
+
slider.syncExists = $(slider.vars.sync).length > 0;
|
|
44
50
|
// SLIDE:
|
|
45
|
-
if (vars.animation === "slide") vars.animation = "swing";
|
|
51
|
+
if (slider.vars.animation === "slide") slider.vars.animation = "swing";
|
|
46
52
|
slider.prop = (vertical) ? "top" : "marginLeft";
|
|
47
53
|
slider.args = {};
|
|
48
54
|
// SLIDESHOW:
|
|
49
55
|
slider.manualPause = false;
|
|
56
|
+
slider.stopped = false;
|
|
57
|
+
//PAUSE WHEN INVISIBLE
|
|
58
|
+
slider.started = false;
|
|
59
|
+
slider.startTimeout = null;
|
|
50
60
|
// TOUCH/USECSS:
|
|
51
|
-
slider.transitions = !vars.video && !fade && vars.useCSS && (function() {
|
|
61
|
+
slider.transitions = !slider.vars.video && !fade && slider.vars.useCSS && (function() {
|
|
52
62
|
var obj = document.createElement('div'),
|
|
53
63
|
props = ['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective'];
|
|
54
64
|
for (var i in props) {
|
|
@@ -61,76 +71,83 @@
|
|
|
61
71
|
return false;
|
|
62
72
|
}());
|
|
63
73
|
// CONTROLSCONTAINER:
|
|
64
|
-
if (vars.controlsContainer !== "") slider.controlsContainer = $(vars.controlsContainer).length > 0 && $(vars.controlsContainer);
|
|
74
|
+
if (slider.vars.controlsContainer !== "") slider.controlsContainer = $(slider.vars.controlsContainer).length > 0 && $(slider.vars.controlsContainer);
|
|
65
75
|
// MANUAL:
|
|
66
|
-
if (vars.manualControls !== "") slider.manualControls = $(vars.manualControls).length > 0 && $(vars.manualControls);
|
|
67
|
-
|
|
76
|
+
if (slider.vars.manualControls !== "") slider.manualControls = $(slider.vars.manualControls).length > 0 && $(slider.vars.manualControls);
|
|
77
|
+
|
|
68
78
|
// RANDOMIZE:
|
|
69
|
-
if (vars.randomize) {
|
|
79
|
+
if (slider.vars.randomize) {
|
|
70
80
|
slider.slides.sort(function() { return (Math.round(Math.random())-0.5); });
|
|
71
81
|
slider.container.empty().append(slider.slides);
|
|
72
82
|
}
|
|
73
|
-
|
|
83
|
+
|
|
74
84
|
slider.doMath();
|
|
75
|
-
|
|
76
|
-
// ASNAV:
|
|
77
|
-
if (asNav) methods.asNav.setup();
|
|
78
|
-
|
|
85
|
+
|
|
79
86
|
// INIT
|
|
80
87
|
slider.setup("init");
|
|
81
|
-
|
|
88
|
+
|
|
82
89
|
// CONTROLNAV:
|
|
83
|
-
if (vars.controlNav) methods.controlNav.setup();
|
|
84
|
-
|
|
90
|
+
if (slider.vars.controlNav) methods.controlNav.setup();
|
|
91
|
+
|
|
85
92
|
// DIRECTIONNAV:
|
|
86
|
-
if (vars.directionNav) methods.directionNav.setup();
|
|
87
|
-
|
|
93
|
+
if (slider.vars.directionNav) methods.directionNav.setup();
|
|
94
|
+
|
|
88
95
|
// KEYBOARD:
|
|
89
|
-
if (vars.keyboard && ($(slider.containerSelector).length === 1 || vars.multipleKeyboard)) {
|
|
96
|
+
if (slider.vars.keyboard && ($(slider.containerSelector).length === 1 || slider.vars.multipleKeyboard)) {
|
|
90
97
|
$(document).bind('keyup', function(event) {
|
|
91
98
|
var keycode = event.keyCode;
|
|
92
99
|
if (!slider.animating && (keycode === 39 || keycode === 37)) {
|
|
93
100
|
var target = (keycode === 39) ? slider.getTarget('next') :
|
|
94
101
|
(keycode === 37) ? slider.getTarget('prev') : false;
|
|
95
|
-
slider.flexAnimate(target, vars.pauseOnAction);
|
|
102
|
+
slider.flexAnimate(target, slider.vars.pauseOnAction);
|
|
96
103
|
}
|
|
97
104
|
});
|
|
98
105
|
}
|
|
99
106
|
// MOUSEWHEEL:
|
|
100
|
-
if (vars.mousewheel) {
|
|
107
|
+
if (slider.vars.mousewheel) {
|
|
101
108
|
slider.bind('mousewheel', function(event, delta, deltaX, deltaY) {
|
|
102
109
|
event.preventDefault();
|
|
103
110
|
var target = (delta < 0) ? slider.getTarget('next') : slider.getTarget('prev');
|
|
104
|
-
slider.flexAnimate(target, vars.pauseOnAction);
|
|
111
|
+
slider.flexAnimate(target, slider.vars.pauseOnAction);
|
|
105
112
|
});
|
|
106
113
|
}
|
|
107
|
-
|
|
114
|
+
|
|
108
115
|
// PAUSEPLAY
|
|
109
|
-
if (vars.pausePlay) methods.pausePlay.setup();
|
|
110
|
-
|
|
116
|
+
if (slider.vars.pausePlay) methods.pausePlay.setup();
|
|
117
|
+
|
|
118
|
+
//PAUSE WHEN INVISIBLE
|
|
119
|
+
if (slider.vars.slideshow && slider.vars.pauseInvisible) methods.pauseInvisible.init();
|
|
120
|
+
|
|
111
121
|
// SLIDSESHOW
|
|
112
|
-
if (vars.slideshow) {
|
|
113
|
-
if (vars.pauseOnHover) {
|
|
122
|
+
if (slider.vars.slideshow) {
|
|
123
|
+
if (slider.vars.pauseOnHover) {
|
|
114
124
|
slider.hover(function() {
|
|
115
|
-
slider.pause();
|
|
125
|
+
if (!slider.manualPlay && !slider.manualPause) slider.pause();
|
|
116
126
|
}, function() {
|
|
117
|
-
if (!slider.manualPause) slider.play();
|
|
127
|
+
if (!slider.manualPause && !slider.manualPlay && !slider.stopped) slider.play();
|
|
118
128
|
});
|
|
119
129
|
}
|
|
120
130
|
// initialize animation
|
|
121
|
-
|
|
131
|
+
//If we're visible, or we don't use PageVisibility API
|
|
132
|
+
if(!slider.vars.pauseInvisible || !methods.pauseInvisible.isHidden()) {
|
|
133
|
+
(slider.vars.initDelay > 0) ? slider.startTimeout = setTimeout(slider.play, slider.vars.initDelay) : slider.play();
|
|
134
|
+
}
|
|
122
135
|
}
|
|
123
|
-
|
|
136
|
+
|
|
137
|
+
// ASNAV:
|
|
138
|
+
if (asNav) methods.asNav.setup();
|
|
139
|
+
|
|
124
140
|
// TOUCH
|
|
125
|
-
if (touch && vars.touch) methods.touch();
|
|
126
|
-
|
|
141
|
+
if (touch && slider.vars.touch) methods.touch();
|
|
142
|
+
|
|
127
143
|
// FADE&&SMOOTHHEIGHT || SLIDE:
|
|
128
|
-
if (!fade || (fade && vars.smoothHeight)) $(window).bind("resize focus", methods.resize);
|
|
129
|
-
|
|
130
|
-
|
|
144
|
+
if (!fade || (fade && slider.vars.smoothHeight)) $(window).bind("resize orientationchange focus", methods.resize);
|
|
145
|
+
|
|
146
|
+
slider.find("img").attr("draggable", "false");
|
|
147
|
+
|
|
131
148
|
// API: start() Callback
|
|
132
149
|
setTimeout(function(){
|
|
133
|
-
vars.start(slider);
|
|
150
|
+
slider.vars.start(slider);
|
|
134
151
|
}, 200);
|
|
135
152
|
},
|
|
136
153
|
asNav: {
|
|
@@ -139,15 +156,41 @@
|
|
|
139
156
|
slider.animatingTo = Math.floor(slider.currentSlide/slider.move);
|
|
140
157
|
slider.currentItem = slider.currentSlide;
|
|
141
158
|
slider.slides.removeClass(namespace + "active-slide").eq(slider.currentItem).addClass(namespace + "active-slide");
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
159
|
+
if(!msGesture){
|
|
160
|
+
slider.slides.click(function(e){
|
|
161
|
+
e.preventDefault();
|
|
162
|
+
var $slide = $(this),
|
|
163
|
+
target = $slide.index();
|
|
164
|
+
var posFromLeft = $slide.offset().left - $(slider).scrollLeft(); // Find position of slide relative to left of slider container
|
|
165
|
+
if( posFromLeft <= 0 && $slide.hasClass( namespace + 'active-slide' ) ) {
|
|
166
|
+
slider.flexAnimate(slider.getTarget("prev"), true);
|
|
167
|
+
} else if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass(namespace + "active-slide")) {
|
|
168
|
+
slider.direction = (slider.currentItem < target) ? "next" : "prev";
|
|
169
|
+
slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true);
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
}else{
|
|
173
|
+
el._slider = slider;
|
|
174
|
+
slider.slides.each(function (){
|
|
175
|
+
var that = this;
|
|
176
|
+
that._gesture = new MSGesture();
|
|
177
|
+
that._gesture.target = that;
|
|
178
|
+
that.addEventListener("MSPointerDown", function (e){
|
|
179
|
+
e.preventDefault();
|
|
180
|
+
if(e.currentTarget._gesture)
|
|
181
|
+
e.currentTarget._gesture.addPointer(e.pointerId);
|
|
182
|
+
}, false);
|
|
183
|
+
that.addEventListener("MSGestureTap", function (e){
|
|
184
|
+
e.preventDefault();
|
|
185
|
+
var $slide = $(this),
|
|
186
|
+
target = $slide.index();
|
|
187
|
+
if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass('active')) {
|
|
188
|
+
slider.direction = (slider.currentItem < target) ? "next" : "prev";
|
|
189
|
+
slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true);
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
}
|
|
151
194
|
}
|
|
152
195
|
},
|
|
153
196
|
controlNav: {
|
|
@@ -159,66 +202,79 @@
|
|
|
159
202
|
}
|
|
160
203
|
},
|
|
161
204
|
setupPaging: function() {
|
|
162
|
-
var type = (vars.controlNav === "thumbnails") ? 'control-thumbs' : 'control-paging',
|
|
205
|
+
var type = (slider.vars.controlNav === "thumbnails") ? 'control-thumbs' : 'control-paging',
|
|
163
206
|
j = 1,
|
|
164
|
-
item
|
|
165
|
-
|
|
207
|
+
item,
|
|
208
|
+
slide;
|
|
209
|
+
|
|
166
210
|
slider.controlNavScaffold = $('<ol class="'+ namespace + 'control-nav ' + namespace + type + '"></ol>');
|
|
167
|
-
|
|
211
|
+
|
|
168
212
|
if (slider.pagingCount > 1) {
|
|
169
213
|
for (var i = 0; i < slider.pagingCount; i++) {
|
|
170
|
-
|
|
214
|
+
slide = slider.slides.eq(i);
|
|
215
|
+
item = (slider.vars.controlNav === "thumbnails") ? '<img src="' + slide.attr( 'data-thumb' ) + '"/>' : '<a>' + j + '</a>';
|
|
216
|
+
if ( 'thumbnails' === slider.vars.controlNav && true === slider.vars.thumbCaptions ) {
|
|
217
|
+
var captn = slide.attr( 'data-thumbcaption' );
|
|
218
|
+
if ( '' != captn && undefined != captn ) item += '<span class="' + namespace + 'caption">' + captn + '</span>';
|
|
219
|
+
}
|
|
171
220
|
slider.controlNavScaffold.append('<li>' + item + '</li>');
|
|
172
221
|
j++;
|
|
173
222
|
}
|
|
174
223
|
}
|
|
175
|
-
|
|
224
|
+
|
|
176
225
|
// CONTROLSCONTAINER:
|
|
177
226
|
(slider.controlsContainer) ? $(slider.controlsContainer).append(slider.controlNavScaffold) : slider.append(slider.controlNavScaffold);
|
|
178
227
|
methods.controlNav.set();
|
|
179
|
-
|
|
228
|
+
|
|
180
229
|
methods.controlNav.active();
|
|
181
|
-
|
|
230
|
+
|
|
182
231
|
slider.controlNavScaffold.delegate('a, img', eventType, function(event) {
|
|
183
232
|
event.preventDefault();
|
|
184
|
-
var $this = $(this),
|
|
185
|
-
target = slider.controlNav.index($this);
|
|
186
233
|
|
|
187
|
-
if (
|
|
188
|
-
|
|
189
|
-
|
|
234
|
+
if (watchedEvent === "" || watchedEvent === event.type) {
|
|
235
|
+
var $this = $(this),
|
|
236
|
+
target = slider.controlNav.index($this);
|
|
237
|
+
|
|
238
|
+
if (!$this.hasClass(namespace + 'active')) {
|
|
239
|
+
slider.direction = (target > slider.currentSlide) ? "next" : "prev";
|
|
240
|
+
slider.flexAnimate(target, slider.vars.pauseOnAction);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
// setup flags to prevent event duplication
|
|
245
|
+
if (watchedEvent === "") {
|
|
246
|
+
watchedEvent = event.type;
|
|
190
247
|
}
|
|
248
|
+
methods.setToClearWatchedEvent();
|
|
249
|
+
|
|
191
250
|
});
|
|
192
|
-
// Prevent iOS click event bug
|
|
193
|
-
if (touch) {
|
|
194
|
-
slider.controlNavScaffold.delegate('a', "click touchstart", function(event) {
|
|
195
|
-
event.preventDefault();
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
251
|
},
|
|
199
252
|
setupManual: function() {
|
|
200
253
|
slider.controlNav = slider.manualControls;
|
|
201
254
|
methods.controlNav.active();
|
|
202
|
-
|
|
203
|
-
slider.controlNav.
|
|
255
|
+
|
|
256
|
+
slider.controlNav.bind(eventType, function(event) {
|
|
204
257
|
event.preventDefault();
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
258
|
+
|
|
259
|
+
if (watchedEvent === "" || watchedEvent === event.type) {
|
|
260
|
+
var $this = $(this),
|
|
261
|
+
target = slider.controlNav.index($this);
|
|
262
|
+
|
|
263
|
+
if (!$this.hasClass(namespace + 'active')) {
|
|
264
|
+
(target > slider.currentSlide) ? slider.direction = "next" : slider.direction = "prev";
|
|
265
|
+
slider.flexAnimate(target, slider.vars.pauseOnAction);
|
|
266
|
+
}
|
|
211
267
|
}
|
|
268
|
+
|
|
269
|
+
// setup flags to prevent event duplication
|
|
270
|
+
if (watchedEvent === "") {
|
|
271
|
+
watchedEvent = event.type;
|
|
272
|
+
}
|
|
273
|
+
methods.setToClearWatchedEvent();
|
|
212
274
|
});
|
|
213
|
-
// Prevent iOS click event bug
|
|
214
|
-
if (touch) {
|
|
215
|
-
slider.controlNav.live("click touchstart", function(event) {
|
|
216
|
-
event.preventDefault();
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
275
|
},
|
|
220
276
|
set: function() {
|
|
221
|
-
var selector = (vars.controlNav === "thumbnails") ? 'img' : 'a';
|
|
277
|
+
var selector = (slider.vars.controlNav === "thumbnails") ? 'img' : 'a';
|
|
222
278
|
slider.controlNav = $('.' + namespace + 'control-nav li ' + selector, (slider.controlsContainer) ? slider.controlsContainer : slider);
|
|
223
279
|
},
|
|
224
280
|
active: function() {
|
|
@@ -238,8 +294,8 @@
|
|
|
238
294
|
},
|
|
239
295
|
directionNav: {
|
|
240
296
|
setup: function() {
|
|
241
|
-
var directionNavScaffold = $('<ul class="' + namespace + 'direction-nav"><li><a class="' + namespace + 'prev" href="#">' + vars.prevText + '</a></li><li><a class="' + namespace + 'next" href="#">' + vars.nextText + '</a></li></ul>');
|
|
242
|
-
|
|
297
|
+
var directionNavScaffold = $('<ul class="' + namespace + 'direction-nav"><li><a class="' + namespace + 'prev" href="#">' + slider.vars.prevText + '</a></li><li><a class="' + namespace + 'next" href="#">' + slider.vars.nextText + '</a></li></ul>');
|
|
298
|
+
|
|
243
299
|
// CONTROLSCONTAINER:
|
|
244
300
|
if (slider.controlsContainer) {
|
|
245
301
|
$(slider.controlsContainer).append(directionNavScaffold);
|
|
@@ -248,40 +304,46 @@
|
|
|
248
304
|
slider.append(directionNavScaffold);
|
|
249
305
|
slider.directionNav = $('.' + namespace + 'direction-nav li a', slider);
|
|
250
306
|
}
|
|
251
|
-
|
|
307
|
+
|
|
252
308
|
methods.directionNav.update();
|
|
253
|
-
|
|
309
|
+
|
|
254
310
|
slider.directionNav.bind(eventType, function(event) {
|
|
255
311
|
event.preventDefault();
|
|
256
|
-
var target
|
|
257
|
-
|
|
312
|
+
var target;
|
|
313
|
+
|
|
314
|
+
if (watchedEvent === "" || watchedEvent === event.type) {
|
|
315
|
+
target = ($(this).hasClass(namespace + 'next')) ? slider.getTarget('next') : slider.getTarget('prev');
|
|
316
|
+
slider.flexAnimate(target, slider.vars.pauseOnAction);
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
// setup flags to prevent event duplication
|
|
320
|
+
if (watchedEvent === "") {
|
|
321
|
+
watchedEvent = event.type;
|
|
322
|
+
}
|
|
323
|
+
methods.setToClearWatchedEvent();
|
|
258
324
|
});
|
|
259
|
-
// Prevent iOS click event bug
|
|
260
|
-
if (touch) {
|
|
261
|
-
slider.directionNav.bind("click touchstart", function(event) {
|
|
262
|
-
event.preventDefault();
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
325
|
},
|
|
266
326
|
update: function() {
|
|
267
327
|
var disabledClass = namespace + 'disabled';
|
|
268
|
-
if (
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "prev").addClass(disabledClass);
|
|
328
|
+
if (slider.pagingCount === 1) {
|
|
329
|
+
slider.directionNav.addClass(disabledClass).attr('tabindex', '-1');
|
|
330
|
+
} else if (!slider.vars.animationLoop) {
|
|
331
|
+
if (slider.animatingTo === 0) {
|
|
332
|
+
slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "prev").addClass(disabledClass).attr('tabindex', '-1');
|
|
273
333
|
} else if (slider.animatingTo === slider.last) {
|
|
274
|
-
slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "next").addClass(disabledClass);
|
|
334
|
+
slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "next").addClass(disabledClass).attr('tabindex', '-1');
|
|
275
335
|
} else {
|
|
276
|
-
slider.directionNav.removeClass(disabledClass);
|
|
336
|
+
slider.directionNav.removeClass(disabledClass).removeAttr('tabindex');
|
|
277
337
|
}
|
|
338
|
+
} else {
|
|
339
|
+
slider.directionNav.removeClass(disabledClass).removeAttr('tabindex');
|
|
278
340
|
}
|
|
279
341
|
}
|
|
280
342
|
},
|
|
281
343
|
pausePlay: {
|
|
282
344
|
setup: function() {
|
|
283
345
|
var pausePlayScaffold = $('<div class="' + namespace + 'pauseplay"><a></a></div>');
|
|
284
|
-
|
|
346
|
+
|
|
285
347
|
// CONTROLSCONTAINER:
|
|
286
348
|
if (slider.controlsContainer) {
|
|
287
349
|
slider.controlsContainer.append(pausePlayScaffold);
|
|
@@ -290,29 +352,33 @@
|
|
|
290
352
|
slider.append(pausePlayScaffold);
|
|
291
353
|
slider.pausePlay = $('.' + namespace + 'pauseplay a', slider);
|
|
292
354
|
}
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
355
|
+
|
|
356
|
+
methods.pausePlay.update((slider.vars.slideshow) ? namespace + 'pause' : namespace + 'play');
|
|
357
|
+
|
|
297
358
|
slider.pausePlay.bind(eventType, function(event) {
|
|
298
359
|
event.preventDefault();
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
360
|
+
|
|
361
|
+
if (watchedEvent === "" || watchedEvent === event.type) {
|
|
362
|
+
if ($(this).hasClass(namespace + 'pause')) {
|
|
363
|
+
slider.manualPause = true;
|
|
364
|
+
slider.manualPlay = false;
|
|
365
|
+
slider.pause();
|
|
366
|
+
} else {
|
|
367
|
+
slider.manualPause = false;
|
|
368
|
+
slider.manualPlay = true;
|
|
369
|
+
slider.play();
|
|
370
|
+
}
|
|
305
371
|
}
|
|
372
|
+
|
|
373
|
+
// setup flags to prevent event duplication
|
|
374
|
+
if (watchedEvent === "") {
|
|
375
|
+
watchedEvent = event.type;
|
|
376
|
+
}
|
|
377
|
+
methods.setToClearWatchedEvent();
|
|
306
378
|
});
|
|
307
|
-
// Prevent iOS click event bug
|
|
308
|
-
if (touch) {
|
|
309
|
-
slider.pausePlay.bind("click touchstart", function(event) {
|
|
310
|
-
event.preventDefault();
|
|
311
|
-
});
|
|
312
|
-
}
|
|
313
379
|
},
|
|
314
380
|
update: function(state) {
|
|
315
|
-
(state === "play") ? slider.pausePlay.removeClass(namespace + 'pause').addClass(namespace + 'play').
|
|
381
|
+
(state === "play") ? slider.pausePlay.removeClass(namespace + 'pause').addClass(namespace + 'play').html(slider.vars.playText) : slider.pausePlay.removeClass(namespace + 'play').addClass(namespace + 'pause').html(slider.vars.pauseText);
|
|
316
382
|
}
|
|
317
383
|
},
|
|
318
384
|
touch: function() {
|
|
@@ -322,70 +388,175 @@
|
|
|
322
388
|
cwidth,
|
|
323
389
|
dx,
|
|
324
390
|
startT,
|
|
325
|
-
scrolling = false
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
if (slider.animating) {
|
|
330
|
-
e.preventDefault();
|
|
331
|
-
} else if (e.touches.length === 1) {
|
|
332
|
-
slider.pause();
|
|
333
|
-
// CAROUSEL:
|
|
334
|
-
cwidth = (vertical) ? slider.h : slider. w;
|
|
335
|
-
startT = Number(new Date());
|
|
336
|
-
// CAROUSEL:
|
|
337
|
-
offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :
|
|
338
|
-
(carousel && reverse) ? slider.limit - (((slider.itemW + vars.itemMargin) * slider.move) * slider.animatingTo) :
|
|
339
|
-
(carousel && slider.currentSlide === slider.last) ? slider.limit :
|
|
340
|
-
(carousel) ? ((slider.itemW + vars.itemMargin) * slider.move) * slider.currentSlide :
|
|
341
|
-
(reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;
|
|
342
|
-
startX = (vertical) ? e.touches[0].pageY : e.touches[0].pageX;
|
|
343
|
-
startY = (vertical) ? e.touches[0].pageX : e.touches[0].pageY;
|
|
344
|
-
|
|
345
|
-
el.addEventListener('touchmove', onTouchMove, false);
|
|
346
|
-
el.addEventListener('touchend', onTouchEnd, false);
|
|
347
|
-
}
|
|
348
|
-
}
|
|
391
|
+
scrolling = false,
|
|
392
|
+
localX = 0,
|
|
393
|
+
localY = 0,
|
|
394
|
+
accDx = 0;
|
|
349
395
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
396
|
+
if(!msGesture){
|
|
397
|
+
el.addEventListener('touchstart', onTouchStart, false);
|
|
398
|
+
|
|
399
|
+
function onTouchStart(e) {
|
|
400
|
+
if (slider.animating) {
|
|
401
|
+
e.preventDefault();
|
|
402
|
+
} else if ( ( window.navigator.msPointerEnabled ) || e.touches.length === 1 ) {
|
|
403
|
+
slider.pause();
|
|
404
|
+
// CAROUSEL:
|
|
405
|
+
cwidth = (vertical) ? slider.h : slider. w;
|
|
406
|
+
startT = Number(new Date());
|
|
407
|
+
// CAROUSEL:
|
|
408
|
+
|
|
409
|
+
// Local vars for X and Y points.
|
|
410
|
+
localX = e.touches[0].pageX;
|
|
411
|
+
localY = e.touches[0].pageY;
|
|
412
|
+
|
|
413
|
+
offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :
|
|
414
|
+
(carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :
|
|
415
|
+
(carousel && slider.currentSlide === slider.last) ? slider.limit :
|
|
416
|
+
(carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide :
|
|
417
|
+
(reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;
|
|
418
|
+
startX = (vertical) ? localY : localX;
|
|
419
|
+
startY = (vertical) ? localX : localY;
|
|
420
|
+
|
|
421
|
+
el.addEventListener('touchmove', onTouchMove, false);
|
|
422
|
+
el.addEventListener('touchend', onTouchEnd, false);
|
|
359
423
|
}
|
|
360
|
-
slider.setProps(offset + dx, "setTouch");
|
|
361
424
|
}
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
425
|
+
|
|
426
|
+
function onTouchMove(e) {
|
|
427
|
+
// Local vars for X and Y points.
|
|
428
|
+
|
|
429
|
+
localX = e.touches[0].pageX;
|
|
430
|
+
localY = e.touches[0].pageY;
|
|
431
|
+
|
|
432
|
+
dx = (vertical) ? startX - localY : startX - localX;
|
|
433
|
+
scrolling = (vertical) ? (Math.abs(dx) < Math.abs(localX - startY)) : (Math.abs(dx) < Math.abs(localY - startY));
|
|
434
|
+
|
|
435
|
+
var fxms = 500;
|
|
436
|
+
|
|
437
|
+
if ( ! scrolling || Number( new Date() ) - startT > fxms ) {
|
|
438
|
+
e.preventDefault();
|
|
439
|
+
if (!fade && slider.transitions) {
|
|
440
|
+
if (!slider.vars.animationLoop) {
|
|
441
|
+
dx = dx/((slider.currentSlide === 0 && dx < 0 || slider.currentSlide === slider.last && dx > 0) ? (Math.abs(dx)/cwidth+2) : 1);
|
|
442
|
+
}
|
|
443
|
+
slider.setProps(offset + dx, "setTouch");
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
function onTouchEnd(e) {
|
|
449
|
+
// finish the touch by undoing the touch session
|
|
450
|
+
el.removeEventListener('touchmove', onTouchMove, false);
|
|
451
|
+
|
|
452
|
+
if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) {
|
|
453
|
+
var updateDx = (reverse) ? -dx : dx,
|
|
454
|
+
target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev');
|
|
455
|
+
|
|
456
|
+
if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {
|
|
457
|
+
slider.flexAnimate(target, slider.vars.pauseOnAction);
|
|
458
|
+
} else {
|
|
459
|
+
if (!fade) slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true);
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
el.removeEventListener('touchend', onTouchEnd, false);
|
|
463
|
+
|
|
464
|
+
startX = null;
|
|
465
|
+
startY = null;
|
|
466
|
+
dx = null;
|
|
467
|
+
offset = null;
|
|
468
|
+
}
|
|
469
|
+
}else{
|
|
470
|
+
el.style.msTouchAction = "none";
|
|
471
|
+
el._gesture = new MSGesture();
|
|
472
|
+
el._gesture.target = el;
|
|
473
|
+
el.addEventListener("MSPointerDown", onMSPointerDown, false);
|
|
474
|
+
el._slider = slider;
|
|
475
|
+
el.addEventListener("MSGestureChange", onMSGestureChange, false);
|
|
476
|
+
el.addEventListener("MSGestureEnd", onMSGestureEnd, false);
|
|
477
|
+
|
|
478
|
+
function onMSPointerDown(e){
|
|
479
|
+
e.stopPropagation();
|
|
480
|
+
if (slider.animating) {
|
|
481
|
+
e.preventDefault();
|
|
482
|
+
}else{
|
|
483
|
+
slider.pause();
|
|
484
|
+
el._gesture.addPointer(e.pointerId);
|
|
485
|
+
accDx = 0;
|
|
486
|
+
cwidth = (vertical) ? slider.h : slider. w;
|
|
487
|
+
startT = Number(new Date());
|
|
488
|
+
// CAROUSEL:
|
|
489
|
+
|
|
490
|
+
offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :
|
|
491
|
+
(carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :
|
|
492
|
+
(carousel && slider.currentSlide === slider.last) ? slider.limit :
|
|
493
|
+
(carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide :
|
|
494
|
+
(reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
function onMSGestureChange(e) {
|
|
499
|
+
e.stopPropagation();
|
|
500
|
+
var slider = e.target._slider;
|
|
501
|
+
if(!slider){
|
|
502
|
+
return;
|
|
503
|
+
}
|
|
504
|
+
var transX = -e.translationX,
|
|
505
|
+
transY = -e.translationY;
|
|
506
|
+
|
|
507
|
+
//Accumulate translations.
|
|
508
|
+
accDx = accDx + ((vertical) ? transY : transX);
|
|
509
|
+
dx = accDx;
|
|
510
|
+
scrolling = (vertical) ? (Math.abs(accDx) < Math.abs(-transX)) : (Math.abs(accDx) < Math.abs(-transY));
|
|
511
|
+
|
|
512
|
+
if(e.detail === e.MSGESTURE_FLAG_INERTIA){
|
|
513
|
+
setImmediate(function (){
|
|
514
|
+
el._gesture.stop();
|
|
515
|
+
});
|
|
516
|
+
|
|
517
|
+
return;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
if (!scrolling || Number(new Date()) - startT > 500) {
|
|
521
|
+
e.preventDefault();
|
|
522
|
+
if (!fade && slider.transitions) {
|
|
523
|
+
if (!slider.vars.animationLoop) {
|
|
524
|
+
dx = accDx / ((slider.currentSlide === 0 && accDx < 0 || slider.currentSlide === slider.last && accDx > 0) ? (Math.abs(accDx) / cwidth + 2) : 1);
|
|
525
|
+
}
|
|
526
|
+
slider.setProps(offset + dx, "setTouch");
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
function onMSGestureEnd(e) {
|
|
532
|
+
e.stopPropagation();
|
|
533
|
+
var slider = e.target._slider;
|
|
534
|
+
if(!slider){
|
|
535
|
+
return;
|
|
536
|
+
}
|
|
537
|
+
if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) {
|
|
538
|
+
var updateDx = (reverse) ? -dx : dx,
|
|
539
|
+
target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev');
|
|
540
|
+
|
|
541
|
+
if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {
|
|
542
|
+
slider.flexAnimate(target, slider.vars.pauseOnAction);
|
|
543
|
+
} else {
|
|
544
|
+
if (!fade) slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true);
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
startX = null;
|
|
549
|
+
startY = null;
|
|
550
|
+
dx = null;
|
|
551
|
+
offset = null;
|
|
552
|
+
accDx = 0;
|
|
374
553
|
}
|
|
375
|
-
}
|
|
376
|
-
// finish the touch by undoing the touch session
|
|
377
|
-
el.removeEventListener('touchmove', onTouchMove, false);
|
|
378
|
-
el.removeEventListener('touchend', onTouchEnd, false);
|
|
379
|
-
startX = null;
|
|
380
|
-
startY = null;
|
|
381
|
-
dx = null;
|
|
382
|
-
offset = null;
|
|
383
554
|
}
|
|
384
555
|
},
|
|
385
556
|
resize: function() {
|
|
386
557
|
if (!slider.animating && slider.is(':visible')) {
|
|
387
558
|
if (!carousel) slider.doMath();
|
|
388
|
-
|
|
559
|
+
|
|
389
560
|
if (fade) {
|
|
390
561
|
// SMOOTH HEIGHT:
|
|
391
562
|
methods.smoothHeight();
|
|
@@ -399,7 +570,7 @@
|
|
|
399
570
|
slider.setProps(slider.h, "setTotal");
|
|
400
571
|
} else {
|
|
401
572
|
// SMOOTH HEIGHT:
|
|
402
|
-
if (vars.smoothHeight) methods.smoothHeight();
|
|
573
|
+
if (slider.vars.smoothHeight) methods.smoothHeight();
|
|
403
574
|
slider.newSlides.width(slider.computedW);
|
|
404
575
|
slider.setProps(slider.computedW, "setTotal");
|
|
405
576
|
}
|
|
@@ -412,27 +583,67 @@
|
|
|
412
583
|
}
|
|
413
584
|
},
|
|
414
585
|
sync: function(action) {
|
|
415
|
-
var $obj = $(vars.sync).data("flexslider"),
|
|
586
|
+
var $obj = $(slider.vars.sync).data("flexslider"),
|
|
416
587
|
target = slider.animatingTo;
|
|
417
|
-
|
|
588
|
+
|
|
418
589
|
switch (action) {
|
|
419
|
-
case "animate": $obj.flexAnimate(target, vars.pauseOnAction, false, true); break;
|
|
590
|
+
case "animate": $obj.flexAnimate(target, slider.vars.pauseOnAction, false, true); break;
|
|
420
591
|
case "play": if (!$obj.playing && !$obj.asNav) { $obj.play(); } break;
|
|
421
592
|
case "pause": $obj.pause(); break;
|
|
422
593
|
}
|
|
594
|
+
},
|
|
595
|
+
pauseInvisible: {
|
|
596
|
+
visProp: null,
|
|
597
|
+
init: function() {
|
|
598
|
+
var prefixes = ['webkit','moz','ms','o'];
|
|
599
|
+
|
|
600
|
+
if ('hidden' in document) return 'hidden';
|
|
601
|
+
for (var i = 0; i < prefixes.length; i++) {
|
|
602
|
+
if ((prefixes[i] + 'Hidden') in document)
|
|
603
|
+
methods.pauseInvisible.visProp = prefixes[i] + 'Hidden';
|
|
604
|
+
}
|
|
605
|
+
if (methods.pauseInvisible.visProp) {
|
|
606
|
+
var evtname = methods.pauseInvisible.visProp.replace(/[H|h]idden/,'') + 'visibilitychange';
|
|
607
|
+
document.addEventListener(evtname, function() {
|
|
608
|
+
if (methods.pauseInvisible.isHidden()) {
|
|
609
|
+
if(slider.startTimeout) clearTimeout(slider.startTimeout); //If clock is ticking, stop timer and prevent from starting while invisible
|
|
610
|
+
else slider.pause(); //Or just pause
|
|
611
|
+
}
|
|
612
|
+
else {
|
|
613
|
+
if(slider.started) slider.play(); //Initiated before, just play
|
|
614
|
+
else (slider.vars.initDelay > 0) ? setTimeout(slider.play, slider.vars.initDelay) : slider.play(); //Didn't init before: simply init or wait for it
|
|
615
|
+
}
|
|
616
|
+
});
|
|
617
|
+
}
|
|
618
|
+
},
|
|
619
|
+
isHidden: function() {
|
|
620
|
+
return document[methods.pauseInvisible.visProp] || false;
|
|
621
|
+
}
|
|
622
|
+
},
|
|
623
|
+
setToClearWatchedEvent: function() {
|
|
624
|
+
clearTimeout(watchedEventClearTimer);
|
|
625
|
+
watchedEventClearTimer = setTimeout(function() {
|
|
626
|
+
watchedEvent = "";
|
|
627
|
+
}, 3000);
|
|
423
628
|
}
|
|
424
629
|
}
|
|
425
|
-
|
|
630
|
+
|
|
426
631
|
// public methods
|
|
427
632
|
slider.flexAnimate = function(target, pause, override, withSync, fromNav) {
|
|
428
|
-
if (!slider.
|
|
633
|
+
if (!slider.vars.animationLoop && target !== slider.currentSlide) {
|
|
634
|
+
slider.direction = (target > slider.currentSlide) ? "next" : "prev";
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
if (asNav && slider.pagingCount === 1) slider.direction = (slider.currentItem < target) ? "next" : "prev";
|
|
638
|
+
|
|
639
|
+
if (!slider.animating && (slider.canAdvance(target, fromNav) || override) && slider.is(":visible")) {
|
|
429
640
|
if (asNav && withSync) {
|
|
430
|
-
var master = $(vars.asNavFor).data('flexslider');
|
|
641
|
+
var master = $(slider.vars.asNavFor).data('flexslider');
|
|
431
642
|
slider.atEnd = target === 0 || target === slider.count - 1;
|
|
432
643
|
master.flexAnimate(target, true, false, true, fromNav);
|
|
433
644
|
slider.direction = (slider.currentItem < target) ? "next" : "prev";
|
|
434
645
|
master.direction = slider.direction;
|
|
435
|
-
|
|
646
|
+
|
|
436
647
|
if (Math.ceil((target + 1)/slider.visible) - 1 !== slider.currentSlide && target !== 0) {
|
|
437
648
|
slider.currentItem = target;
|
|
438
649
|
slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide");
|
|
@@ -443,59 +654,61 @@
|
|
|
443
654
|
return false;
|
|
444
655
|
}
|
|
445
656
|
}
|
|
446
|
-
|
|
657
|
+
|
|
447
658
|
slider.animating = true;
|
|
448
659
|
slider.animatingTo = target;
|
|
449
|
-
|
|
450
|
-
vars.before(slider);
|
|
451
|
-
|
|
660
|
+
|
|
452
661
|
// SLIDESHOW:
|
|
453
662
|
if (pause) slider.pause();
|
|
454
|
-
|
|
663
|
+
|
|
664
|
+
// API: before() animation Callback
|
|
665
|
+
slider.vars.before(slider);
|
|
666
|
+
|
|
455
667
|
// SYNC:
|
|
456
668
|
if (slider.syncExists && !fromNav) methods.sync("animate");
|
|
457
|
-
|
|
669
|
+
|
|
458
670
|
// CONTROLNAV
|
|
459
|
-
if (vars.controlNav) methods.controlNav.active();
|
|
460
|
-
|
|
671
|
+
if (slider.vars.controlNav) methods.controlNav.active();
|
|
672
|
+
|
|
461
673
|
// !CAROUSEL:
|
|
462
674
|
// CANDIDATE: slide active class (for add/remove slide)
|
|
463
675
|
if (!carousel) slider.slides.removeClass(namespace + 'active-slide').eq(target).addClass(namespace + 'active-slide');
|
|
464
|
-
|
|
676
|
+
|
|
465
677
|
// INFINITE LOOP:
|
|
466
678
|
// CANDIDATE: atEnd
|
|
467
679
|
slider.atEnd = target === 0 || target === slider.last;
|
|
468
|
-
|
|
680
|
+
|
|
469
681
|
// DIRECTIONNAV:
|
|
470
|
-
if (vars.directionNav) methods.directionNav.update();
|
|
471
|
-
|
|
682
|
+
if (slider.vars.directionNav) methods.directionNav.update();
|
|
683
|
+
|
|
472
684
|
if (target === slider.last) {
|
|
473
685
|
// API: end() of cycle Callback
|
|
474
|
-
vars.end(slider);
|
|
686
|
+
slider.vars.end(slider);
|
|
475
687
|
// SLIDESHOW && !INFINITE LOOP:
|
|
476
|
-
if (!vars.animationLoop) slider.pause();
|
|
688
|
+
if (!slider.vars.animationLoop) slider.pause();
|
|
477
689
|
}
|
|
478
|
-
|
|
690
|
+
|
|
479
691
|
// SLIDE:
|
|
480
692
|
if (!fade) {
|
|
481
693
|
var dimension = (vertical) ? slider.slides.filter(':first').height() : slider.computedW,
|
|
482
694
|
margin, slideString, calcNext;
|
|
483
|
-
|
|
695
|
+
|
|
484
696
|
// INFINITE LOOP / REVERSE:
|
|
485
697
|
if (carousel) {
|
|
486
|
-
margin = (vars.itemWidth > slider.w) ? vars.itemMargin * 2 : vars.itemMargin;
|
|
698
|
+
//margin = (slider.vars.itemWidth > slider.w) ? slider.vars.itemMargin * 2 : slider.vars.itemMargin;
|
|
699
|
+
margin = slider.vars.itemMargin;
|
|
487
700
|
calcNext = ((slider.itemW + margin) * slider.move) * slider.animatingTo;
|
|
488
701
|
slideString = (calcNext > slider.limit && slider.visible !== 1) ? slider.limit : calcNext;
|
|
489
|
-
} else if (slider.currentSlide === 0 && target === slider.count - 1 && vars.animationLoop && slider.direction !== "next") {
|
|
702
|
+
} else if (slider.currentSlide === 0 && target === slider.count - 1 && slider.vars.animationLoop && slider.direction !== "next") {
|
|
490
703
|
slideString = (reverse) ? (slider.count + slider.cloneOffset) * dimension : 0;
|
|
491
|
-
} else if (slider.currentSlide === slider.last && target === 0 && vars.animationLoop && slider.direction !== "prev") {
|
|
704
|
+
} else if (slider.currentSlide === slider.last && target === 0 && slider.vars.animationLoop && slider.direction !== "prev") {
|
|
492
705
|
slideString = (reverse) ? 0 : (slider.count + 1) * dimension;
|
|
493
706
|
} else {
|
|
494
707
|
slideString = (reverse) ? ((slider.count - 1) - target + slider.cloneOffset) * dimension : (target + slider.cloneOffset) * dimension;
|
|
495
708
|
}
|
|
496
|
-
slider.setProps(slideString, "", vars.animationSpeed);
|
|
709
|
+
slider.setProps(slideString, "", slider.vars.animationSpeed);
|
|
497
710
|
if (slider.transitions) {
|
|
498
|
-
if (!vars.animationLoop || !slider.atEnd) {
|
|
711
|
+
if (!slider.vars.animationLoop || !slider.atEnd) {
|
|
499
712
|
slider.animating = false;
|
|
500
713
|
slider.currentSlide = slider.animatingTo;
|
|
501
714
|
}
|
|
@@ -504,83 +717,102 @@
|
|
|
504
717
|
slider.wrapup(dimension);
|
|
505
718
|
});
|
|
506
719
|
} else {
|
|
507
|
-
slider.container.animate(slider.args, vars.animationSpeed, vars.easing, function(){
|
|
720
|
+
slider.container.animate(slider.args, slider.vars.animationSpeed, slider.vars.easing, function(){
|
|
508
721
|
slider.wrapup(dimension);
|
|
509
722
|
});
|
|
510
723
|
}
|
|
511
724
|
} else { // FADE:
|
|
512
|
-
|
|
513
|
-
|
|
725
|
+
if (!touch) {
|
|
726
|
+
//slider.slides.eq(slider.currentSlide).fadeOut(slider.vars.animationSpeed, slider.vars.easing);
|
|
727
|
+
//slider.slides.eq(target).fadeIn(slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);
|
|
728
|
+
|
|
729
|
+
slider.slides.eq(slider.currentSlide).css({"zIndex": 1}).animate({"opacity": 0}, slider.vars.animationSpeed, slider.vars.easing);
|
|
730
|
+
slider.slides.eq(target).css({"zIndex": 2}).animate({"opacity": 1}, slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);
|
|
731
|
+
|
|
732
|
+
} else {
|
|
733
|
+
slider.slides.eq(slider.currentSlide).css({ "opacity": 0, "zIndex": 1 });
|
|
734
|
+
slider.slides.eq(target).css({ "opacity": 1, "zIndex": 2 });
|
|
735
|
+
slider.wrapup(dimension);
|
|
736
|
+
}
|
|
514
737
|
}
|
|
515
738
|
// SMOOTH HEIGHT:
|
|
516
|
-
if (vars.smoothHeight) methods.smoothHeight(vars.animationSpeed);
|
|
739
|
+
if (slider.vars.smoothHeight) methods.smoothHeight(slider.vars.animationSpeed);
|
|
517
740
|
}
|
|
518
|
-
}
|
|
741
|
+
}
|
|
519
742
|
slider.wrapup = function(dimension) {
|
|
520
743
|
// SLIDE:
|
|
521
744
|
if (!fade && !carousel) {
|
|
522
|
-
if (slider.currentSlide === 0 && slider.animatingTo === slider.last && vars.animationLoop) {
|
|
745
|
+
if (slider.currentSlide === 0 && slider.animatingTo === slider.last && slider.vars.animationLoop) {
|
|
523
746
|
slider.setProps(dimension, "jumpEnd");
|
|
524
|
-
} else if (slider.currentSlide === slider.last && slider.animatingTo === 0 && vars.animationLoop) {
|
|
747
|
+
} else if (slider.currentSlide === slider.last && slider.animatingTo === 0 && slider.vars.animationLoop) {
|
|
525
748
|
slider.setProps(dimension, "jumpStart");
|
|
526
749
|
}
|
|
527
750
|
}
|
|
528
751
|
slider.animating = false;
|
|
529
752
|
slider.currentSlide = slider.animatingTo;
|
|
530
753
|
// API: after() animation Callback
|
|
531
|
-
vars.after(slider);
|
|
754
|
+
slider.vars.after(slider);
|
|
532
755
|
}
|
|
533
|
-
|
|
756
|
+
|
|
534
757
|
// SLIDESHOW:
|
|
535
758
|
slider.animateSlides = function() {
|
|
536
|
-
if (!slider.animating) slider.flexAnimate(slider.getTarget("next"));
|
|
759
|
+
if (!slider.animating && focused ) slider.flexAnimate(slider.getTarget("next"));
|
|
537
760
|
}
|
|
538
761
|
// SLIDESHOW:
|
|
539
762
|
slider.pause = function() {
|
|
540
763
|
clearInterval(slider.animatedSlides);
|
|
764
|
+
slider.animatedSlides = null;
|
|
541
765
|
slider.playing = false;
|
|
542
766
|
// PAUSEPLAY:
|
|
543
|
-
if (vars.pausePlay) methods.pausePlay.update("play");
|
|
767
|
+
if (slider.vars.pausePlay) methods.pausePlay.update("play");
|
|
544
768
|
// SYNC:
|
|
545
769
|
if (slider.syncExists) methods.sync("pause");
|
|
546
770
|
}
|
|
547
771
|
// SLIDESHOW:
|
|
548
772
|
slider.play = function() {
|
|
549
|
-
slider.
|
|
550
|
-
slider.
|
|
773
|
+
if (slider.playing) clearInterval(slider.animatedSlides);
|
|
774
|
+
slider.animatedSlides = slider.animatedSlides || setInterval(slider.animateSlides, slider.vars.slideshowSpeed);
|
|
775
|
+
slider.started = slider.playing = true;
|
|
551
776
|
// PAUSEPLAY:
|
|
552
|
-
if (vars.pausePlay) methods.pausePlay.update("pause");
|
|
777
|
+
if (slider.vars.pausePlay) methods.pausePlay.update("pause");
|
|
553
778
|
// SYNC:
|
|
554
779
|
if (slider.syncExists) methods.sync("play");
|
|
555
780
|
}
|
|
556
|
-
|
|
781
|
+
// STOP:
|
|
782
|
+
slider.stop = function () {
|
|
783
|
+
slider.pause();
|
|
784
|
+
slider.stopped = true;
|
|
785
|
+
}
|
|
786
|
+
slider.canAdvance = function(target, fromNav) {
|
|
557
787
|
// ASNAV:
|
|
558
788
|
var last = (asNav) ? slider.pagingCount - 1 : slider.last;
|
|
559
|
-
return (
|
|
789
|
+
return (fromNav) ? true :
|
|
790
|
+
(asNav && slider.currentItem === slider.count - 1 && target === 0 && slider.direction === "prev") ? true :
|
|
791
|
+
(asNav && slider.currentItem === 0 && target === slider.pagingCount - 1 && slider.direction !== "next") ? false :
|
|
560
792
|
(target === slider.currentSlide && !asNav) ? false :
|
|
561
|
-
(vars.animationLoop) ? true :
|
|
793
|
+
(slider.vars.animationLoop) ? true :
|
|
562
794
|
(slider.atEnd && slider.currentSlide === 0 && target === last && slider.direction !== "next") ? false :
|
|
563
795
|
(slider.atEnd && slider.currentSlide === last && target === 0 && slider.direction === "next") ? false :
|
|
564
796
|
true;
|
|
565
797
|
}
|
|
566
798
|
slider.getTarget = function(dir) {
|
|
567
|
-
slider.direction = dir;
|
|
799
|
+
slider.direction = dir;
|
|
568
800
|
if (dir === "next") {
|
|
569
801
|
return (slider.currentSlide === slider.last) ? 0 : slider.currentSlide + 1;
|
|
570
802
|
} else {
|
|
571
803
|
return (slider.currentSlide === 0) ? slider.last : slider.currentSlide - 1;
|
|
572
804
|
}
|
|
573
805
|
}
|
|
574
|
-
|
|
806
|
+
|
|
575
807
|
// SLIDE:
|
|
576
808
|
slider.setProps = function(pos, special, dur) {
|
|
577
809
|
var target = (function() {
|
|
578
|
-
var posCheck = (pos) ? pos : ((slider.itemW + vars.itemMargin) * slider.move) * slider.animatingTo,
|
|
810
|
+
var posCheck = (pos) ? pos : ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo,
|
|
579
811
|
posCalc = (function() {
|
|
580
812
|
if (carousel) {
|
|
581
813
|
return (special === "setTouch") ? pos :
|
|
582
814
|
(reverse && slider.animatingTo === slider.last) ? 0 :
|
|
583
|
-
(reverse) ? slider.limit - (((slider.itemW + vars.itemMargin) * slider.move) * slider.animatingTo) :
|
|
815
|
+
(reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :
|
|
584
816
|
(slider.animatingTo === slider.last) ? slider.limit : posCheck;
|
|
585
817
|
} else {
|
|
586
818
|
switch (special) {
|
|
@@ -592,6 +824,7 @@
|
|
|
592
824
|
}
|
|
593
825
|
}
|
|
594
826
|
}());
|
|
827
|
+
|
|
595
828
|
return (posCalc * -1) + "px";
|
|
596
829
|
}());
|
|
597
830
|
|
|
@@ -600,18 +833,18 @@
|
|
|
600
833
|
dur = (dur !== undefined) ? (dur/1000) + "s" : "0s";
|
|
601
834
|
slider.container.css("-" + slider.pfx + "-transition-duration", dur);
|
|
602
835
|
}
|
|
603
|
-
|
|
836
|
+
|
|
604
837
|
slider.args[slider.prop] = target;
|
|
605
838
|
if (slider.transitions || dur === undefined) slider.container.css(slider.args);
|
|
606
839
|
}
|
|
607
|
-
|
|
840
|
+
|
|
608
841
|
slider.setup = function(type) {
|
|
609
842
|
// SLIDE:
|
|
610
843
|
if (!fade) {
|
|
611
844
|
var sliderOffset, arr;
|
|
612
|
-
|
|
845
|
+
|
|
613
846
|
if (type === "init") {
|
|
614
|
-
slider.viewport = $('<div class="
|
|
847
|
+
slider.viewport = $('<div class="' + namespace + 'viewport"></div>').css({"overflow": "hidden", "position": "relative"}).appendTo(slider).append(slider.container);
|
|
615
848
|
// INFINITE LOOP:
|
|
616
849
|
slider.cloneCount = 0;
|
|
617
850
|
slider.cloneOffset = 0;
|
|
@@ -623,15 +856,15 @@
|
|
|
623
856
|
}
|
|
624
857
|
}
|
|
625
858
|
// INFINITE LOOP && !CAROUSEL:
|
|
626
|
-
if (vars.animationLoop && !carousel) {
|
|
859
|
+
if (slider.vars.animationLoop && !carousel) {
|
|
627
860
|
slider.cloneCount = 2;
|
|
628
861
|
slider.cloneOffset = 1;
|
|
629
862
|
// clear out old clones
|
|
630
863
|
if (type !== "init") slider.container.find('.clone').remove();
|
|
631
|
-
slider.container.append(slider.slides.first().clone().addClass('clone')).prepend(slider.slides.last().clone().addClass('clone'));
|
|
864
|
+
slider.container.append(slider.slides.first().clone().addClass('clone').attr('aria-hidden', 'true')).prepend(slider.slides.last().clone().addClass('clone').attr('aria-hidden', 'true'));
|
|
632
865
|
}
|
|
633
|
-
slider.newSlides = $(vars.selector, slider);
|
|
634
|
-
|
|
866
|
+
slider.newSlides = $(slider.vars.selector, slider);
|
|
867
|
+
|
|
635
868
|
sliderOffset = (reverse) ? slider.count - 1 - slider.currentSlide + slider.cloneOffset : slider.currentSlide + slider.cloneOffset;
|
|
636
869
|
// VERTICAL:
|
|
637
870
|
if (vertical && !carousel) {
|
|
@@ -649,44 +882,53 @@
|
|
|
649
882
|
slider.doMath();
|
|
650
883
|
slider.newSlides.css({"width": slider.computedW, "float": "left", "display": "block"});
|
|
651
884
|
// SMOOTH HEIGHT:
|
|
652
|
-
if (vars.smoothHeight) methods.smoothHeight();
|
|
885
|
+
if (slider.vars.smoothHeight) methods.smoothHeight();
|
|
653
886
|
}, (type === "init") ? 100 : 0);
|
|
654
887
|
}
|
|
655
|
-
} else { // FADE:
|
|
888
|
+
} else { // FADE:
|
|
656
889
|
slider.slides.css({"width": "100%", "float": "left", "marginRight": "-100%", "position": "relative"});
|
|
657
|
-
if (type === "init")
|
|
890
|
+
if (type === "init") {
|
|
891
|
+
if (!touch) {
|
|
892
|
+
//slider.slides.eq(slider.currentSlide).fadeIn(slider.vars.animationSpeed, slider.vars.easing);
|
|
893
|
+
slider.slides.css({ "opacity": 0, "display": "block", "zIndex": 1 }).eq(slider.currentSlide).css({"zIndex": 2}).animate({"opacity": 1},slider.vars.animationSpeed,slider.vars.easing);
|
|
894
|
+
} else {
|
|
895
|
+
slider.slides.css({ "opacity": 0, "display": "block", "webkitTransition": "opacity " + slider.vars.animationSpeed / 1000 + "s ease", "zIndex": 1 }).eq(slider.currentSlide).css({ "opacity": 1, "zIndex": 2});
|
|
896
|
+
}
|
|
897
|
+
}
|
|
658
898
|
// SMOOTH HEIGHT:
|
|
659
|
-
if (vars.smoothHeight) methods.smoothHeight();
|
|
899
|
+
if (slider.vars.smoothHeight) methods.smoothHeight();
|
|
660
900
|
}
|
|
661
901
|
// !CAROUSEL:
|
|
662
902
|
// CANDIDATE: active slide
|
|
663
903
|
if (!carousel) slider.slides.removeClass(namespace + "active-slide").eq(slider.currentSlide).addClass(namespace + "active-slide");
|
|
664
904
|
}
|
|
665
|
-
|
|
905
|
+
|
|
906
|
+
|
|
666
907
|
slider.doMath = function() {
|
|
667
908
|
var slide = slider.slides.first(),
|
|
668
|
-
slideMargin = vars.itemMargin,
|
|
669
|
-
minItems = vars.minItems,
|
|
670
|
-
maxItems = vars.maxItems;
|
|
671
|
-
|
|
672
|
-
slider.w = slider.width();
|
|
909
|
+
slideMargin = slider.vars.itemMargin,
|
|
910
|
+
minItems = slider.vars.minItems,
|
|
911
|
+
maxItems = slider.vars.maxItems;
|
|
912
|
+
|
|
913
|
+
slider.w = (slider.viewport===undefined) ? slider.width() : slider.viewport.width();
|
|
673
914
|
slider.h = slide.height();
|
|
674
915
|
slider.boxPadding = slide.outerWidth() - slide.width();
|
|
675
916
|
|
|
676
917
|
// CAROUSEL:
|
|
677
918
|
if (carousel) {
|
|
678
|
-
slider.itemT = vars.itemWidth + slideMargin;
|
|
919
|
+
slider.itemT = slider.vars.itemWidth + slideMargin;
|
|
679
920
|
slider.minW = (minItems) ? minItems * slider.itemT : slider.w;
|
|
680
|
-
slider.maxW = (maxItems) ? maxItems * slider.itemT : slider.w;
|
|
681
|
-
slider.itemW = (slider.minW > slider.w) ? (slider.w - (slideMargin * minItems))/minItems :
|
|
682
|
-
(slider.maxW < slider.w) ? (slider.w - (slideMargin * maxItems))/maxItems :
|
|
683
|
-
(vars.itemWidth > slider.w) ? slider.w : vars.itemWidth;
|
|
684
|
-
|
|
685
|
-
slider.
|
|
921
|
+
slider.maxW = (maxItems) ? (maxItems * slider.itemT) - slideMargin : slider.w;
|
|
922
|
+
slider.itemW = (slider.minW > slider.w) ? (slider.w - (slideMargin * (minItems - 1)))/minItems :
|
|
923
|
+
(slider.maxW < slider.w) ? (slider.w - (slideMargin * (maxItems - 1)))/maxItems :
|
|
924
|
+
(slider.vars.itemWidth > slider.w) ? slider.w : slider.vars.itemWidth;
|
|
925
|
+
|
|
926
|
+
slider.visible = Math.floor(slider.w/(slider.itemW));
|
|
927
|
+
slider.move = (slider.vars.move > 0 && slider.vars.move < slider.visible ) ? slider.vars.move : slider.visible;
|
|
686
928
|
slider.pagingCount = Math.ceil(((slider.count - slider.visible)/slider.move) + 1);
|
|
687
929
|
slider.last = slider.pagingCount - 1;
|
|
688
930
|
slider.limit = (slider.pagingCount === 1) ? 0 :
|
|
689
|
-
(vars.itemWidth > slider.w) ? (
|
|
931
|
+
(slider.vars.itemWidth > slider.w) ? (slider.itemW * (slider.count - 1)) + (slideMargin * (slider.count - 1)) : ((slider.itemW + slideMargin) * slider.count) - slider.w - slideMargin;
|
|
690
932
|
} else {
|
|
691
933
|
slider.itemW = slider.w;
|
|
692
934
|
slider.pagingCount = slider.count;
|
|
@@ -694,10 +936,11 @@
|
|
|
694
936
|
}
|
|
695
937
|
slider.computedW = slider.itemW - slider.boxPadding;
|
|
696
938
|
}
|
|
697
|
-
|
|
939
|
+
|
|
940
|
+
|
|
698
941
|
slider.update = function(pos, action) {
|
|
699
942
|
slider.doMath();
|
|
700
|
-
|
|
943
|
+
|
|
701
944
|
// update currentSlide and slider.animatingTo if necessary
|
|
702
945
|
if (!carousel) {
|
|
703
946
|
if (pos < slider.currentSlide) {
|
|
@@ -707,9 +950,9 @@
|
|
|
707
950
|
}
|
|
708
951
|
slider.animatingTo = slider.currentSlide;
|
|
709
952
|
}
|
|
710
|
-
|
|
953
|
+
|
|
711
954
|
// update controlNav
|
|
712
|
-
if (vars.controlNav && !slider.manualControls) {
|
|
955
|
+
if (slider.vars.controlNav && !slider.manualControls) {
|
|
713
956
|
if ((action === "add" && !carousel) || slider.pagingCount > slider.controlNav.length) {
|
|
714
957
|
methods.controlNav.update("add");
|
|
715
958
|
} else if ((action === "remove" && !carousel) || slider.pagingCount < slider.controlNav.length) {
|
|
@@ -721,95 +964,104 @@
|
|
|
721
964
|
}
|
|
722
965
|
}
|
|
723
966
|
// update directionNav
|
|
724
|
-
if (vars.directionNav) methods.directionNav.update();
|
|
725
|
-
|
|
967
|
+
if (slider.vars.directionNav) methods.directionNav.update();
|
|
968
|
+
|
|
726
969
|
}
|
|
727
|
-
|
|
970
|
+
|
|
728
971
|
slider.addSlide = function(obj, pos) {
|
|
729
972
|
var $obj = $(obj);
|
|
730
|
-
|
|
973
|
+
|
|
731
974
|
slider.count += 1;
|
|
732
975
|
slider.last = slider.count - 1;
|
|
733
|
-
|
|
976
|
+
|
|
734
977
|
// append new slide
|
|
735
978
|
if (vertical && reverse) {
|
|
736
979
|
(pos !== undefined) ? slider.slides.eq(slider.count - pos).after($obj) : slider.container.prepend($obj);
|
|
737
980
|
} else {
|
|
738
981
|
(pos !== undefined) ? slider.slides.eq(pos).before($obj) : slider.container.append($obj);
|
|
739
982
|
}
|
|
740
|
-
|
|
983
|
+
|
|
741
984
|
// update currentSlide, animatingTo, controlNav, and directionNav
|
|
742
985
|
slider.update(pos, "add");
|
|
743
|
-
|
|
986
|
+
|
|
744
987
|
// update slider.slides
|
|
745
|
-
slider.slides = $(vars.selector + ':not(.clone)', slider);
|
|
988
|
+
slider.slides = $(slider.vars.selector + ':not(.clone)', slider);
|
|
746
989
|
// re-setup the slider to accomdate new slide
|
|
747
990
|
slider.setup();
|
|
748
|
-
|
|
991
|
+
|
|
749
992
|
//FlexSlider: added() Callback
|
|
750
|
-
vars.added(slider);
|
|
993
|
+
slider.vars.added(slider);
|
|
751
994
|
}
|
|
752
995
|
slider.removeSlide = function(obj) {
|
|
753
996
|
var pos = (isNaN(obj)) ? slider.slides.index($(obj)) : obj;
|
|
754
|
-
|
|
997
|
+
|
|
755
998
|
// update count
|
|
756
999
|
slider.count -= 1;
|
|
757
1000
|
slider.last = slider.count - 1;
|
|
758
|
-
|
|
1001
|
+
|
|
759
1002
|
// remove slide
|
|
760
1003
|
if (isNaN(obj)) {
|
|
761
1004
|
$(obj, slider.slides).remove();
|
|
762
1005
|
} else {
|
|
763
1006
|
(vertical && reverse) ? slider.slides.eq(slider.last).remove() : slider.slides.eq(obj).remove();
|
|
764
1007
|
}
|
|
765
|
-
|
|
1008
|
+
|
|
766
1009
|
// update currentSlide, animatingTo, controlNav, and directionNav
|
|
767
1010
|
slider.doMath();
|
|
768
1011
|
slider.update(pos, "remove");
|
|
769
|
-
|
|
1012
|
+
|
|
770
1013
|
// update slider.slides
|
|
771
|
-
slider.slides = $(vars.selector + ':not(.clone)', slider);
|
|
1014
|
+
slider.slides = $(slider.vars.selector + ':not(.clone)', slider);
|
|
772
1015
|
// re-setup the slider to accomdate new slide
|
|
773
1016
|
slider.setup();
|
|
774
|
-
|
|
1017
|
+
|
|
775
1018
|
// FlexSlider: removed() Callback
|
|
776
|
-
vars.removed(slider);
|
|
1019
|
+
slider.vars.removed(slider);
|
|
777
1020
|
}
|
|
778
|
-
|
|
1021
|
+
|
|
779
1022
|
//FlexSlider: Initialize
|
|
780
1023
|
methods.init();
|
|
781
1024
|
}
|
|
782
|
-
|
|
1025
|
+
|
|
1026
|
+
// Ensure the slider isn't focussed if the window loses focus.
|
|
1027
|
+
$( window ).blur( function ( e ) {
|
|
1028
|
+
focused = false;
|
|
1029
|
+
}).focus( function ( e ) {
|
|
1030
|
+
focused = true;
|
|
1031
|
+
});
|
|
1032
|
+
|
|
783
1033
|
//FlexSlider: Default Settings
|
|
784
1034
|
$.flexslider.defaults = {
|
|
785
1035
|
namespace: "flex-", //{NEW} String: Prefix string attached to the class of every element generated by the plugin
|
|
786
1036
|
selector: ".slides > li", //{NEW} Selector: Must match a simple pattern. '{container} > {slide}' -- Ignore pattern at your own peril
|
|
787
1037
|
animation: "fade", //String: Select your animation type, "fade" or "slide"
|
|
788
|
-
easing: "swing",
|
|
1038
|
+
easing: "swing", //{NEW} String: Determines the easing method used in jQuery transitions. jQuery easing plugin is supported!
|
|
789
1039
|
direction: "horizontal", //String: Select the sliding direction, "horizontal" or "vertical"
|
|
790
1040
|
reverse: false, //{NEW} Boolean: Reverse the animation direction
|
|
791
|
-
animationLoop: true,
|
|
792
|
-
smoothHeight: false, //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode
|
|
1041
|
+
animationLoop: true, //Boolean: Should the animation loop? If false, directionNav will received "disable" classes at either end
|
|
1042
|
+
smoothHeight: false, //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode
|
|
793
1043
|
startAt: 0, //Integer: The slide that the slider should start on. Array notation (0 = first slide)
|
|
794
1044
|
slideshow: true, //Boolean: Animate slider automatically
|
|
795
1045
|
slideshowSpeed: 7000, //Integer: Set the speed of the slideshow cycling, in milliseconds
|
|
796
1046
|
animationSpeed: 600, //Integer: Set the speed of animations, in milliseconds
|
|
797
1047
|
initDelay: 0, //{NEW} Integer: Set an initialization delay, in milliseconds
|
|
798
1048
|
randomize: false, //Boolean: Randomize slide order
|
|
799
|
-
|
|
1049
|
+
thumbCaptions: false, //Boolean: Whether or not to put captions on thumbnails when using the "thumbnails" controlNav.
|
|
1050
|
+
|
|
800
1051
|
// Usability features
|
|
801
1052
|
pauseOnAction: true, //Boolean: Pause the slideshow when interacting with control elements, highly recommended.
|
|
802
1053
|
pauseOnHover: false, //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering
|
|
1054
|
+
pauseInvisible: true, //{NEW} Boolean: Pause the slideshow when tab is invisible, resume when visible. Provides better UX, lower CPU usage.
|
|
803
1055
|
useCSS: true, //{NEW} Boolean: Slider will use CSS3 transitions if available
|
|
804
1056
|
touch: true, //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices
|
|
805
1057
|
video: false, //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches
|
|
806
|
-
|
|
1058
|
+
|
|
807
1059
|
// Primary Controls
|
|
808
1060
|
controlNav: true, //Boolean: Create navigation for paging control of each clide? Note: Leave true for manualControls usage
|
|
809
1061
|
directionNav: true, //Boolean: Create navigation for previous/next navigation? (true/false)
|
|
810
1062
|
prevText: "Previous", //String: Set the text for the "previous" directionNav item
|
|
811
1063
|
nextText: "Next", //String: Set the text for the "next" directionNav item
|
|
812
|
-
|
|
1064
|
+
|
|
813
1065
|
// Secondary Navigation
|
|
814
1066
|
keyboard: true, //Boolean: Allow slider navigating via keyboard left/right keys
|
|
815
1067
|
multipleKeyboard: false, //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present.
|
|
@@ -817,20 +1069,21 @@
|
|
|
817
1069
|
pausePlay: false, //Boolean: Create pause/play dynamic element
|
|
818
1070
|
pauseText: "Pause", //String: Set the text for the "pause" pausePlay item
|
|
819
1071
|
playText: "Play", //String: Set the text for the "play" pausePlay item
|
|
820
|
-
|
|
1072
|
+
|
|
821
1073
|
// Special properties
|
|
822
1074
|
controlsContainer: "", //{UPDATED} jQuery Object/Selector: Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be $(".flexslider-container"). Property is ignored if given element is not found.
|
|
823
1075
|
manualControls: "", //{UPDATED} jQuery Object/Selector: Declare custom control navigation. Examples would be $(".flex-control-nav li") or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs.
|
|
824
1076
|
sync: "", //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care.
|
|
825
1077
|
asNavFor: "", //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider
|
|
826
|
-
|
|
1078
|
+
|
|
827
1079
|
// Carousel Options
|
|
828
1080
|
itemWidth: 0, //{NEW} Integer: Box-model width of individual carousel items, including horizontal borders and padding.
|
|
829
1081
|
itemMargin: 0, //{NEW} Integer: Margin between carousel items.
|
|
830
|
-
minItems:
|
|
1082
|
+
minItems: 1, //{NEW} Integer: Minimum number of carousel items that should be visible. Items will resize fluidly when below this.
|
|
831
1083
|
maxItems: 0, //{NEW} Integer: Maxmimum number of carousel items that should be visible. Items will resize fluidly when above this limit.
|
|
832
1084
|
move: 0, //{NEW} Integer: Number of carousel items that should move on animation. If 0, slider will move all visible items.
|
|
833
|
-
|
|
1085
|
+
allowOneSlide: true, //{NEW} Boolean: Whether or not to allow a slider comprised of a single slide
|
|
1086
|
+
|
|
834
1087
|
// Callback API
|
|
835
1088
|
start: function(){}, //Callback: function(slider) - Fires when the slider loads the first slide
|
|
836
1089
|
before: function(){}, //Callback: function(slider) - Fires asynchronously with each slider animation
|
|
@@ -843,14 +1096,15 @@
|
|
|
843
1096
|
|
|
844
1097
|
//FlexSlider: Plugin Function
|
|
845
1098
|
$.fn.flexslider = function(options) {
|
|
846
|
-
options
|
|
1099
|
+
if (options === undefined) options = {};
|
|
1100
|
+
|
|
847
1101
|
if (typeof options === "object") {
|
|
848
1102
|
return this.each(function() {
|
|
849
1103
|
var $this = $(this),
|
|
850
1104
|
selector = (options.selector) ? options.selector : ".slides > li",
|
|
851
1105
|
$slides = $this.find(selector);
|
|
852
1106
|
|
|
853
|
-
|
|
1107
|
+
if ( ( $slides.length === 1 && options.allowOneSlide === true ) || $slides.length === 0 ) {
|
|
854
1108
|
$slides.fadeIn(400);
|
|
855
1109
|
if (options.start) options.start($this);
|
|
856
1110
|
} else if ($this.data('flexslider') === undefined) {
|
|
@@ -863,12 +1117,12 @@
|
|
|
863
1117
|
switch (options) {
|
|
864
1118
|
case "play": $slider.play(); break;
|
|
865
1119
|
case "pause": $slider.pause(); break;
|
|
1120
|
+
case "stop": $slider.stop(); break;
|
|
866
1121
|
case "next": $slider.flexAnimate($slider.getTarget("next"), true); break;
|
|
867
1122
|
case "prev":
|
|
868
1123
|
case "previous": $slider.flexAnimate($slider.getTarget("prev"), true); break;
|
|
869
1124
|
default: if (typeof options === "number") $slider.flexAnimate(options, true);
|
|
870
1125
|
}
|
|
871
1126
|
}
|
|
872
|
-
}
|
|
873
|
-
|
|
874
|
-
})(jQuery);
|
|
1127
|
+
}
|
|
1128
|
+
})(jQuery);
|