From c778bd98a7d2653751efb8c2d7696ad5d45c3c56 Mon Sep 17 00:00:00 2001 From: Augustin Riedinger Date: Wed, 16 Sep 2015 12:25:40 +0200 Subject: [PATCH 1/3] removed jQuery dependency --- angular.rangeSlider.js | 22 +++++++++++++--------- demo/index.html | 4 ++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/angular.rangeSlider.js b/angular.rangeSlider.js index 7359301..56e9442 100644 --- a/angular.rangeSlider.js +++ b/angular.rangeSlider.js @@ -147,6 +147,10 @@ // } + var findByClassName = function(element, className) { + return angular.element(element[0].getElementsByClassName(className)); + }; + return { restrict: 'A', replace: true, @@ -170,9 +174,9 @@ */ var $slider = angular.element(element), - handles = [element.find('.ngrs-handle-min'), element.find('.ngrs-handle-max')], - values = [element.find('.ngrs-value-min'), element.find('.ngrs-value-max')], - join = element.find('.ngrs-join'), + handles = [findByClassName(element, 'ngrs-handle-min'), findByClassName(element, 'ngrs-handle-max')], + values = [findByClassName(element, 'ngrs-value-min'), findByClassName(element, 'ngrs-value-max')], + join = findByClassName(element, 'ngrs-join'), pos = 'left', posOpp = 'right', orientation = 0, @@ -279,7 +283,7 @@ // flag as true scope.attachHandleValues = true; // add class to runner - element.find('.ngrs-value-runner').addClass('ngrs-attached-handles'); + findByClassName(element, 'ngrs-value-runner').addClass('ngrs-attached-handles'); } else { scope.attachHandleValues = false; } @@ -487,6 +491,7 @@ function handleMove(index) { var $handle = handles[index]; + var $body = angular.element($document).find('body'); // on mousedown / touchstart $handle.bind(onEvent + 'X', function(event) { @@ -504,7 +509,7 @@ } // stop user accidentally selecting stuff - angular.element('body').bind('selectstart' + eventNamespace, function() { + $body.bind('selectstart' + eventNamespace, function() { return false; }); @@ -520,7 +525,7 @@ $slider.addClass('ngrs-focus ' + handleDownClass); // add touch class for MS styling - angular.element('body').addClass('ngrs-touching'); + $body.addClass('ngrs-touching'); // listen for mousemove / touchmove document events $document.bind(moveEvent, function(e) { @@ -546,9 +551,8 @@ movement = [ (previousClick[0] !== currentClick[0]), (previousClick[1] !== currentClick[1]) ]; - // propose a movement - proposal = originalPosition + ((currentClick[orientation] * 100) / (orientation ? $slider.height() : $slider.width())); + proposal = originalPosition + ((currentClick[orientation] * 100) / (orientation ? $slider[0].offsetHeight : $slider[0].offsetWidth)); // normalize so it can't move out of bounds proposal = restrict(proposal); @@ -617,7 +621,7 @@ $document.off(moveEvent); $document.off(offEvent); - angular.element('body').removeClass('ngrs-touching'); + $body.removeClass('ngrs-touching'); // cancel down flag down = false; diff --git a/demo/index.html b/demo/index.html index 4ffad47..f60503b 100644 --- a/demo/index.html +++ b/demo/index.html @@ -305,8 +305,8 @@

The HTML

- - + + From 7ab511775de0789d24e7779d534b66e548aaeb9e Mon Sep 17 00:00:00 2001 From: Augustin Riedinger Date: Wed, 16 Sep 2015 13:09:17 +0200 Subject: [PATCH 2/3] IE8 compatible --- angular.rangeSlider.js | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/angular.rangeSlider.js b/angular.rangeSlider.js index 56e9442..375439b 100644 --- a/angular.rangeSlider.js +++ b/angular.rangeSlider.js @@ -145,12 +145,23 @@ // } else { // angular.element('html').addClass('ngrs-no-touch'); // } + var filter = function(array, method) { + var filteredArray = []; + for (var i=0; i Date: Wed, 16 Sep 2015 18:16:20 +0200 Subject: [PATCH 3/3] forgot the $destroy section --- angular.rangeSlider.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/angular.rangeSlider.js b/angular.rangeSlider.js index 375439b..3a11e48 100644 --- a/angular.rangeSlider.js +++ b/angular.rangeSlider.js @@ -185,6 +185,7 @@ */ var $slider = angular.element(element), + $body = angular.element($document).find('body'), handles = [findDivByClassName(element, 'ngrs-handle-min'), findDivByClassName(element, 'ngrs-handle-max')], values = [findDivByClassName(element, 'ngrs-value-min'), findDivByClassName(element, 'ngrs-value-max')], join = findDivByClassName(element, 'ngrs-join'), @@ -502,7 +503,6 @@ function handleMove(index) { var $handle = handles[index]; - var $body = angular.element($document).find('body'); // on mousedown / touchstart $handle.bind(onEvent + 'X', function(event) { @@ -675,7 +675,7 @@ $slider.off(eventNamespace); // unbind from body - angular.element('body').off(eventNamespace); + $body.off(eventNamespace); // unbind from document $document.off(eventNamespace);