@@ -418,33 +418,25 @@ var zoomPlugin = {
418418 node . removeEventListener ( 'mousemove' , chartInstance . $zoom . _mouseMoveHandler ) ;
419419
420420 var chartArea = chartInstance . chartArea ;
421- var xAxis = getXAxis ( chartInstance ) ;
422- var yAxis = getYAxis ( chartInstance ) ;
423421 var beginPoint = chartInstance . $zoom . _dragZoomStart ;
424- var startX = xAxis . left ;
425- var endX = xAxis . right ;
426- var startY = yAxis . top ;
427- var endY = yAxis . bottom ;
428422
429- if ( directionEnabled ( chartInstance . $zoom . _options . zoom . mode , 'x' ) ) {
430- var offsetX = beginPoint . target . getBoundingClientRect ( ) . left ;
431- startX = Math . min ( beginPoint . clientX , event . clientX ) - offsetX ;
432- endX = Math . max ( beginPoint . clientX , event . clientX ) - offsetX ;
433- }
423+ var offsetX = beginPoint . target . getBoundingClientRect ( ) . left ;
424+ var startX = Math . min ( beginPoint . clientX , event . clientX ) - offsetX ;
425+ var endX = Math . max ( beginPoint . clientX , event . clientX ) - offsetX ;
434426
435- if ( directionEnabled ( chartInstance . $zoom . _options . zoom . mode , 'y' ) ) {
436- var offsetY = beginPoint . target . getBoundingClientRect ( ) . top ;
437- startY = Math . min ( beginPoint . clientY , event . clientY ) - offsetY ;
438- endY = Math . max ( beginPoint . clientY , event . clientY ) - offsetY ;
439- }
427+ var offsetY = beginPoint . target . getBoundingClientRect ( ) . top ;
428+ var startY = Math . min ( beginPoint . clientY , event . clientY ) - offsetY ;
429+ var endY = Math . max ( beginPoint . clientY , event . clientY ) - offsetY ;
440430
441431 var dragDistanceX = endX - startX ;
442432 var chartDistanceX = chartArea . right - chartArea . left ;
443- var zoomX = 1 + ( ( chartDistanceX - dragDistanceX ) / chartDistanceX ) ;
433+ var xEnabled = directionEnabled ( chartInstance . $zoom . _options . zoom . mode , 'x' ) ;
434+ var zoomX = xEnabled && dragDistanceX ? 1 + ( ( chartDistanceX - dragDistanceX ) / chartDistanceX ) : 1 ;
444435
445436 var dragDistanceY = endY - startY ;
446437 var chartDistanceY = chartArea . bottom - chartArea . top ;
447- var zoomY = 1 + ( ( chartDistanceY - dragDistanceY ) / chartDistanceY ) ;
438+ var yEnabled = directionEnabled ( chartInstance . $zoom . _options . zoom . mode , 'y' ) ;
439+ var zoomY = yEnabled && dragDistanceY ? 1 + ( ( chartDistanceY - dragDistanceY ) / chartDistanceY ) : 1 ;
448440
449441 // Remove drag start and end before chart update to stop drawing selected area
450442 chartInstance . $zoom . _dragZoomStart = null ;
0 commit comments