From 6ecf07a49ef27eac175d73161e0fb3994c2ad272 Mon Sep 17 00:00:00 2001 From: Rebecca McLaughlin Date: Mon, 27 Mar 2017 10:45:41 +0100 Subject: [PATCH] Add mobile device support for dragging scrollbar --- jquery.scrollbar.js | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/jquery.scrollbar.js b/jquery.scrollbar.js index 0883fd3..9962247 100644 --- a/jquery.scrollbar.js +++ b/jquery.scrollbar.js @@ -425,21 +425,30 @@ }); // handle scrollbar drag'n'drop - scrollx.scroll.bar.on('mousedown' + namespace, function (event) { - - if (event.which != 1) // lmb - return true; + scrollx.scroll.bar.on('touchstart mousedown' + namespace, function (event) { + if ( event.which !== 0 && event.which !== 1 ) + return true; var eventPosition = event[(d === 'x') ? 'pageX' : 'pageY']; + + if ( event.type === 'touchstart' ) { + var eventPosition = (d === 'x') ? event.originalEvent.touches[0].pageX : event.originalEvent.touches[0].pageY; + } + var initOffset = c[scrollOffset](); scrollx.scroll.addClass('scroll-draggable'); - $(document).on('mousemove' + namespace, function (event) { - var diff = parseInt((event[(d === 'x') ? 'pageX' : 'pageY'] - eventPosition) / scrollx.kx, 10); - if (d === 'x' && o.isRtl && (browser.msie || browser.msedge)) - diff = diff * -1; - c[scrollOffset](initOffset + diff); + $(document).on('touchmove mousemove' + namespace, function (event) { + var diff = parseInt((event[(d === 'x') ? 'pageX' : 'pageY'] - eventPosition) / scrollx.kx, 10); + + if ( event.type === 'touchmove' ) { + var diff = parseInt( ((d === 'x') ? event.originalEvent.touches[0].pageX : event.originalEvent.touches[0].pageY - eventPosition) / scrollx.kx, 10); + } + + if (d === 'x' && o.isRtl && (browser.msie || browser.msedge)) + diff = diff * -1; + c[scrollOffset](initOffset + diff); }); return S._handleMouseDown(function () {