From b28028ac4082842143b0f528d6bc539da6ccb419 Mon Sep 17 00:00:00 2001 From: Pliable Pixels Date: Thu, 21 Sep 2017 12:49:18 -0400 Subject: mega changes, including updates and X --- .../src/directives/rn-carousel-auto-slide.js | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 www/lib/angular-carousel/src/directives/rn-carousel-auto-slide.js (limited to 'www/lib/angular-carousel/src/directives/rn-carousel-auto-slide.js') 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); + }); + } + }; +}]); -- cgit v1.2.3