You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@echarts.apache.org by su...@apache.org on 2018/05/30 16:13:51 UTC
[incubator-echarts] 01/02: tweak scroll move.
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 <su...@gmail.com>
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
sushuang@apache.org.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org