@@ -277,11 +277,16 @@ module.exports = function draw(gd) {
277
277
278
278
var eventY0 , eventY1 , scrollBoxY0 ;
279
279
280
- var getScrollBoxDragY = function ( scrollBoxY0 , eventY0 , eventY1 ) {
280
+ var getScrollBarDragY = function ( scrollBoxY0 , eventY0 , eventY1 ) {
281
281
var y = ( ( eventY1 - eventY0 ) / scrollRatio ) + scrollBoxY0 ;
282
282
return Lib . constrain ( y , 0 , scrollBoxYMax ) ;
283
283
} ;
284
284
285
+ var getNaturalDragY = function ( scrollBoxY0 , eventY0 , eventY1 ) {
286
+ var y = ( ( eventY0 - eventY1 ) / scrollRatio ) + scrollBoxY0 ;
287
+ return Lib . constrain ( y , 0 , scrollBoxYMax ) ;
288
+ } ;
289
+
285
290
// scroll legend by dragging scrollBAR
286
291
var scrollBarDrag = d3 . behavior . drag ( )
287
292
. on ( 'dragstart' , function ( ) {
@@ -301,7 +306,7 @@ module.exports = function draw(gd) {
301
306
} else {
302
307
eventY1 = e . clientY ;
303
308
}
304
- scrollBoxY = getScrollBoxDragY ( scrollBoxY0 , eventY0 , eventY1 ) ;
309
+ scrollBoxY = getScrollBarDragY ( scrollBoxY0 , eventY0 , eventY1 ) ;
305
310
scrollHandler ( scrollBoxY , scrollBarHeight , scrollRatio ) ;
306
311
} ) ;
307
312
scrollBar . call ( scrollBarDrag ) ;
@@ -319,9 +324,8 @@ module.exports = function draw(gd) {
319
324
var e = d3 . event . sourceEvent ;
320
325
if ( e . type === 'touchmove' ) {
321
326
eventY1 = e . changedTouches [ 0 ] . clientY ;
322
- scrollBoxY = getScrollBoxDragY ( scrollBoxY0 , eventY0 , eventY1 ) ;
323
- var naturalScrollBoxY = scrollBoxYMax - scrollBoxY ; // inverted for natural-scroll
324
- scrollHandler ( naturalScrollBoxY , scrollBarHeight , scrollRatio ) ;
327
+ scrollBoxY = getNaturalDragY ( scrollBoxY0 , eventY0 , eventY1 ) ;
328
+ scrollHandler ( scrollBoxY , scrollBarHeight , scrollRatio ) ;
325
329
}
326
330
} ) ;
327
331
scrollBox . call ( scrollBoxTouchDrag ) ;
0 commit comments