@@ -236,21 +236,24 @@ function setupDragElement(rangeSlider, gd, axisOpts, opts) {
236
236
var grabAreaMin = rangeSlider . select ( 'rect.' + constants . grabAreaMinClassName ) . node ( ) ;
237
237
var grabAreaMax = rangeSlider . select ( 'rect.' + constants . grabAreaMaxClassName ) . node ( ) ;
238
238
239
- rangeSlider . on ( 'mousedown' , function ( ) {
239
+ function mouseDownHandler ( ) {
240
240
var event = d3 . event ;
241
241
var target = event . target ;
242
- var startX = event . clientX ;
242
+ var startX = event . clientX || event . touches [ 0 ] . clientX ;
243
243
var offsetX = startX - rangeSlider . node ( ) . getBoundingClientRect ( ) . left ;
244
244
var minVal = opts . d2p ( axisOpts . _rl [ 0 ] ) ;
245
245
var maxVal = opts . d2p ( axisOpts . _rl [ 1 ] ) ;
246
246
247
247
var dragCover = dragElement . coverSlip ( ) ;
248
248
249
+ this . addEventListener ( 'touchmove' , mouseMove ) ;
250
+ this . addEventListener ( 'touchend' , mouseUp ) ;
249
251
dragCover . addEventListener ( 'mousemove' , mouseMove ) ;
250
252
dragCover . addEventListener ( 'mouseup' , mouseUp ) ;
251
253
252
254
function mouseMove ( e ) {
253
- var delta = + e . clientX - startX ;
255
+ var clientX = e . clientX || e . touches [ 0 ] . clientX ;
256
+ var delta = + clientX - startX ;
254
257
var pixelMin , pixelMax , cursor ;
255
258
256
259
switch ( target ) {
@@ -295,9 +298,14 @@ function setupDragElement(rangeSlider, gd, axisOpts, opts) {
295
298
function mouseUp ( ) {
296
299
dragCover . removeEventListener ( 'mousemove' , mouseMove ) ;
297
300
dragCover . removeEventListener ( 'mouseup' , mouseUp ) ;
301
+ this . removeEventListener ( 'touchmove' , mouseMove ) ;
302
+ this . removeEventListener ( 'touchend' , mouseUp ) ;
298
303
Lib . removeElement ( dragCover ) ;
299
304
}
300
- } ) ;
305
+ }
306
+
307
+ rangeSlider . on ( 'mousedown' , mouseDownHandler ) ;
308
+ rangeSlider . on ( 'touchstart' , mouseDownHandler ) ;
301
309
}
302
310
303
311
function setDataRange ( rangeSlider , gd , axisOpts , opts ) {
0 commit comments