@@ -277,11 +277,16 @@ module.exports = function draw(gd) {
277277
278278 var eventY0 , eventY1 , scrollBoxY0 ;
279279
280- var getScrollBoxDragY = function ( scrollBoxY0 , eventY0 , eventY1 ) {
280+ var getScrollBarDragY = function ( scrollBoxY0 , eventY0 , eventY1 ) {
281281 var y = ( ( eventY1 - eventY0 ) / scrollRatio ) + scrollBoxY0 ;
282282 return Lib . constrain ( y , 0 , scrollBoxYMax ) ;
283283 } ;
284284
285+ var getNaturalDragY = function ( scrollBoxY0 , eventY0 , eventY1 ) {
286+ var y = ( ( eventY0 - eventY1 ) / scrollRatio ) + scrollBoxY0 ;
287+ return Lib . constrain ( y , 0 , scrollBoxYMax ) ;
288+ } ;
289+
285290 // scroll legend by dragging scrollBAR
286291 var scrollBarDrag = d3 . behavior . drag ( )
287292 . on ( 'dragstart' , function ( ) {
@@ -301,7 +306,7 @@ module.exports = function draw(gd) {
301306 } else {
302307 eventY1 = e . clientY ;
303308 }
304- scrollBoxY = getScrollBoxDragY ( scrollBoxY0 , eventY0 , eventY1 ) ;
309+ scrollBoxY = getScrollBarDragY ( scrollBoxY0 , eventY0 , eventY1 ) ;
305310 scrollHandler ( scrollBoxY , scrollBarHeight , scrollRatio ) ;
306311 } ) ;
307312 scrollBar . call ( scrollBarDrag ) ;
@@ -319,9 +324,8 @@ module.exports = function draw(gd) {
319324 var e = d3 . event . sourceEvent ;
320325 if ( e . type === 'touchmove' ) {
321326 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 ) ;
325329 }
326330 } ) ;
327331 scrollBox . call ( scrollBoxTouchDrag ) ;
0 commit comments