This is an automated email from the ASF dual-hosted git repository. sushuang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git
commit ac0ba7d0a32355184716598f94eb40f9e49f84c7 Author: sushuang <[email protected]> AuthorDate: Tue May 29 23:30:47 2018 +0800 tweak scroll move. --- src/component/helper/RoamController.js | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/component/helper/RoamController.js b/src/component/helper/RoamController.js index 0c994ef..fcee269 100644 --- a/src/component/helper/RoamController.js +++ b/src/component/helper/RoamController.js @@ -185,6 +185,8 @@ function mousewheel(e) { var shouldMove = checkKeyBinding(this, 'moveOnMouseWheel', e); var wheelDelta = e.wheelDelta; var absWheelDeltaDelta = Math.abs(wheelDelta); + var originX = e.offsetX; + var originY = e.offsetY; // wheelDelta maybe -0 in chrome mac. if (wheelDelta === 0 || (!shouldZoom && !shouldMove)) { @@ -203,16 +205,19 @@ function mousewheel(e) { // wheelDelta of mouse wheel is bigger than touch pad. var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1; var scale = wheelDelta > 0 ? factor : 1 / factor; - zoom.call(this, e, scale, e.offsetX, e.offsetY); + checkPointerAndTrigger( + 'zoom', this, e, {scale: scale, originX: originX, originY: originY} + ); } if (shouldMove) { // FIXME: Should do more test in different environment. var absDelta = Math.abs(wheelDelta); // wheelDelta of mouse wheel is bigger than touch pad. - var scrollDelta = absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05; - var sign = wheelDelta > 0 ? 1 : -1; - this.trigger('scrollMove', {scrollDelta: sign * scrollDelta}); + var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05); + checkPointerAndTrigger( + 'scrollMove', this, e, {scrollDelta: scrollDelta, originX: originX, originY: originY} + ); } } @@ -221,17 +226,21 @@ function pinch(e) { return; } var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1; - zoom.call(this, e, scale, e.pinchX, e.pinchY); + checkPointerAndTrigger( + 'zoom', this, e, {scale: scale, originX: e.pinchX, originY: e.pinchY} + ); } -function zoom(e, scale, originX, originY) { - if (this.pointerChecker && this.pointerChecker(e, originX, originY)) { +function checkPointerAndTrigger(eventName, controller, e, contollerEvent) { + if (controller.pointerChecker + && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY) + ) { // When mouse is out of roamController rect, // default befavoius should not be be disabled, otherwise // page sliding is disabled, contrary to expectation. eventTool.stop(e.event); - this.trigger('zoom', {scale: scale, originX: originX, originY: originY}); + controller.trigger(eventName, contollerEvent); } } -- To stop receiving notification emails like this one, please contact [email protected]. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
