From 54ce92df1c9a398e1c1d33491d6816ef0b902b43 Mon Sep 17 00:00:00 2001 From: Marius Olbertz Date: Tue, 22 Mar 2016 16:54:01 +0100 Subject: [PATCH] Proper touch support for vertical sliders. The touch util seems to emit wrong values for pageX and pageY. These values seem to miss the window.scroll amount. I added an switch to check for this case so the scrolled amount will be considered as well. --- js/foundation.slider.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/js/foundation.slider.js b/js/foundation.slider.js index 71c7a91b9..ee894f0a6 100644 --- a/js/foundation.slider.js +++ b/js/foundation.slider.js @@ -271,7 +271,9 @@ class Slider { pageXY = vertical ? e.pageY : e.pageX, halfOfHandle = this.$handle[0].getBoundingClientRect()[param] / 2, barDim = this.$element[0].getBoundingClientRect()[param], - barOffset = (this.$element.offset()[direction] - pageXY), + // touch events emulated by the touch util give position relative to screen, add window.scroll to event coordinates... + windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft(), + barOffset = this.$element.offset()[direction] - (this.$element.offset()[direction] < pageXY ? pageXY : (pageXY + windowScroll)), //if the cursor position is less than or greater than the elements bounding coordinates, set coordinates within those bounds barXY = barOffset > 0 ? -halfOfHandle : (barOffset - halfOfHandle) < -barDim ? barDim : Math.abs(barOffset), offsetPct = percent(barXY, barDim); -- 2.47.2