diff options
| author | Pliable Pixels <pliablepixels@gmail.com> | 2017-09-21 12:49:18 -0400 |
|---|---|---|
| committer | Pliable Pixels <pliablepixels@gmail.com> | 2017-09-21 12:49:18 -0400 |
| commit | b28028ac4082842143b0f528d6bc539da6ccb419 (patch) | |
| tree | 1e26ea969a781ed8e323fca4e3c76345113fc694 /www/lib/angular-carousel/src/directives/rn-carousel-auto-slide.js | |
| parent | 676270d21beed31d767a06c89522198c77d5d865 (diff) | |
mega changes, including updates and X
Diffstat (limited to 'www/lib/angular-carousel/src/directives/rn-carousel-auto-slide.js')
| -rw-r--r-- | www/lib/angular-carousel/src/directives/rn-carousel-auto-slide.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/www/lib/angular-carousel/src/directives/rn-carousel-auto-slide.js b/www/lib/angular-carousel/src/directives/rn-carousel-auto-slide.js new file mode 100644 index 00000000..a2e1a5fd --- /dev/null +++ b/www/lib/angular-carousel/src/directives/rn-carousel-auto-slide.js @@ -0,0 +1,31 @@ +angular.module('angular-carousel') + +.directive('rnCarouselAutoSlide', ['$interval', function($interval) { + return { + restrict: 'A', + link: function (scope, element, attrs) { + var stopAutoPlay = function() { + if (scope.autoSlider) { + $interval.cancel(scope.autoSlider); + scope.autoSlider = null; + } + }; + var restartTimer = function() { + scope.autoSlide(); + }; + + scope.$watch('carouselIndex', restartTimer); + + if (attrs.hasOwnProperty('rnCarouselPauseOnHover') && attrs.rnCarouselPauseOnHover !== 'false'){ + element.on('mouseenter', stopAutoPlay); + element.on('mouseleave', restartTimer); + } + + scope.$on('$destroy', function(){ + stopAutoPlay(); + element.off('mouseenter', stopAutoPlay); + element.off('mouseleave', restartTimer); + }); + } + }; +}]); |
