diff --git a/js/sliders.js b/js/sliders.js index c42577e..e8bdf73 100644 --- a/js/sliders.js +++ b/js/sliders.js @@ -23,6 +23,7 @@ var slideNumber; var isScrolling; var scrollableArea; + var startedMoving; var getSlider = function (target) { var i; @@ -83,12 +84,17 @@ return; // Exit if a pinch || no slider } + // adjust the starting position if we just started to avoid jumpage + if (!startedMoving) { + pageX += (e.touches[0].pageX - pageX) - 1; + } + deltaX = e.touches[0].pageX - pageX; deltaY = e.touches[0].pageY - pageY; pageX = e.touches[0].pageX; pageY = e.touches[0].pageY; - if (typeof isScrolling === 'undefined') { + if (typeof isScrolling === 'undefined' && startedMoving) { isScrolling = Math.abs(deltaY) > Math.abs(deltaX); } @@ -104,6 +110,9 @@ slideNumber === lastSlide && deltaX < 0 ? (Math.abs(pageX) / sliderWidth) + 1.25 : 1; slider.style.webkitTransform = 'translate3d(' + offsetX + 'px,0,0)'; + + // started moving + startedMoving = true; }; var onTouchEnd = function (e) { @@ -111,6 +120,9 @@ return; } + // we're done moving + startedMoving = false; + setSlideNumber( (+new Date()) - startTime < 1000 && Math.abs(deltaX) > 15 ? (deltaX < 0 ? -1 : 1) : 0 );