Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
半栈学徒
incubator-echarts
提交
c34c6785
I
incubator-echarts
项目概览
半栈学徒
/
incubator-echarts
与 Fork 源项目一致
从无法访问的项目Fork
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
incubator-echarts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
c34c6785
编写于
5月 29, 2018
作者:
S
sushuang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
rename event of roam controller and tweak zoom delta.
上级
68893b09
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
95 addition
and
53 deletion
+95
-53
src/chart/graph/GraphView.js
src/chart/graph/GraphView.js
+9
-9
src/chart/treemap/TreemapView.js
src/chart/treemap/TreemapView.js
+8
-5
src/component/dataZoom/InsideZoomModel.js
src/component/dataZoom/InsideZoomModel.js
+1
-0
src/component/dataZoom/InsideZoomView.js
src/component/dataZoom/InsideZoomView.js
+6
-5
src/component/dataZoom/roams.js
src/component/dataZoom/roams.js
+26
-13
src/component/helper/MapDraw.js
src/component/helper/MapDraw.js
+9
-9
src/component/helper/RoamController.js
src/component/helper/RoamController.js
+36
-12
未找到文件。
src/chart/graph/GraphView.js
浏览文件 @
c34c6785
...
...
@@ -321,23 +321,23 @@ export default echarts.extendChartView({
controller
.
off
(
'
pan
'
)
.
off
(
'
zoom
'
)
.
on
(
'
pan
'
,
function
(
dx
,
dy
)
{
roamHelper
.
updateViewOnPan
(
controllerHost
,
dx
,
dy
);
.
on
(
'
pan
'
,
function
(
e
)
{
roamHelper
.
updateViewOnPan
(
controllerHost
,
e
.
dx
,
e
.
dy
);
api
.
dispatchAction
({
seriesId
:
seriesModel
.
id
,
type
:
'
graphRoam
'
,
dx
:
dx
,
dy
:
dy
dx
:
e
.
dx
,
dy
:
e
.
dy
});
})
.
on
(
'
zoom
'
,
function
(
zoom
,
mouseX
,
mouseY
)
{
roamHelper
.
updateViewOnZoom
(
controllerHost
,
zoom
,
mouseX
,
mouse
Y
);
.
on
(
'
zoom
'
,
function
(
e
)
{
roamHelper
.
updateViewOnZoom
(
controllerHost
,
e
.
scale
,
e
.
originX
,
e
.
origin
Y
);
api
.
dispatchAction
({
seriesId
:
seriesModel
.
id
,
type
:
'
graphRoam
'
,
zoom
:
zoom
,
originX
:
mouse
X
,
originY
:
mouse
Y
zoom
:
e
.
scale
,
originX
:
e
.
origin
X
,
originY
:
e
.
origin
Y
});
this
.
_updateNodeAndLinkScale
();
adjustEdge
(
seriesModel
.
getGraph
(),
this
.
_getNodeGlobalScale
(
seriesModel
));
...
...
src/chart/treemap/TreemapView.js
浏览文件 @
c34c6785
...
...
@@ -431,9 +431,9 @@ export default echarts.extendChartView({
/**
* @private
*/
_onPan
:
function
(
dx
,
dy
)
{
_onPan
:
function
(
e
)
{
if
(
this
.
_state
!==
'
animating
'
&&
(
Math
.
abs
(
dx
)
>
DRAG_THRESHOLD
||
Math
.
abs
(
dy
)
>
DRAG_THRESHOLD
)
&&
(
Math
.
abs
(
e
.
dx
)
>
DRAG_THRESHOLD
||
Math
.
abs
(
e
.
dy
)
>
DRAG_THRESHOLD
)
)
{
// These param must not be cached.
var
root
=
this
.
seriesModel
.
getData
().
tree
.
root
;
...
...
@@ -453,7 +453,7 @@ export default echarts.extendChartView({
from
:
this
.
uid
,
seriesId
:
this
.
seriesModel
.
id
,
rootRect
:
{
x
:
rootLayout
.
x
+
dx
,
y
:
rootLayout
.
y
+
dy
,
x
:
rootLayout
.
x
+
e
.
dx
,
y
:
rootLayout
.
y
+
e
.
dy
,
width
:
rootLayout
.
width
,
height
:
rootLayout
.
height
}
});
...
...
@@ -463,7 +463,10 @@ export default echarts.extendChartView({
/**
* @private
*/
_onZoom
:
function
(
scale
,
mouseX
,
mouseY
)
{
_onZoom
:
function
(
e
)
{
var
mouseX
=
e
.
originX
;
var
mouseY
=
e
.
originY
;
if
(
this
.
_state
!==
'
animating
'
)
{
// These param must not be cached.
var
root
=
this
.
seriesModel
.
getData
().
tree
.
root
;
...
...
@@ -490,7 +493,7 @@ export default echarts.extendChartView({
// Scale root bounding rect.
var
m
=
matrix
.
create
();
matrix
.
translate
(
m
,
m
,
[
-
mouseX
,
-
mouseY
]);
matrix
.
scale
(
m
,
m
,
[
scale
,
scale
]);
matrix
.
scale
(
m
,
m
,
[
e
.
scale
,
e
.
scale
]);
matrix
.
translate
(
m
,
m
,
[
mouseX
,
mouseY
]);
rect
.
applyTransform
(
m
);
...
...
src/component/dataZoom/InsideZoomModel.js
浏览文件 @
c34c6785
...
...
@@ -31,6 +31,7 @@ export default DataZoomModel.extend({
zoomLock
:
false
,
// Whether disable zoom but only pan.
zoomOnMouseWheel
:
true
,
// Can be: true / false / 'shift' / 'ctrl' / 'alt'.
moveOnMouseMove
:
true
,
// Can be: true / false / 'shift' / 'ctrl' / 'alt'.
moveOnMouseWheel
:
false
,
// Can be: true / false / 'shift' / 'ctrl' / 'alt'.
preventDefaultMouseMove
:
true
}
});
\ No newline at end of file
src/component/dataZoom/InsideZoomView.js
浏览文件 @
c34c6785
...
...
@@ -80,6 +80,7 @@ var InsideZoomView = DataZoomView.extend({
roamControllerOpt
:
{
zoomOnMouseWheel
:
dataZoomOption
.
zoomOnMouseWheel
,
moveOnMouseMove
:
dataZoomOption
.
moveOnMouseMove
,
moveOnMouseWheel
:
dataZoomOption
.
moveOnMouseWheel
,
preventDefaultMouseMove
:
dataZoomOption
.
preventDefaultMouseMove
}
}
...
...
@@ -101,7 +102,7 @@ var InsideZoomView = DataZoomView.extend({
/**
* @private
*/
_onPan
:
function
(
coordInfo
,
coordSysName
,
controller
,
dx
,
dy
,
oldX
,
oldY
,
newX
,
newY
)
{
_onPan
:
function
(
coordInfo
,
coordSysName
,
controller
,
e
)
{
var
lastRange
=
this
.
_range
;
var
range
=
lastRange
.
slice
();
...
...
@@ -112,7 +113,7 @@ var InsideZoomView = DataZoomView.extend({
}
var
directionInfo
=
getDirectionInfo
[
coordSysName
](
[
oldX
,
oldY
],
[
newX
,
newY
],
axisModel
,
controller
,
coordInfo
[
e
.
oldX
,
e
.
oldY
],
[
e
.
newX
,
e
.
newY
],
axisModel
,
controller
,
coordInfo
);
var
percentDelta
=
directionInfo
.
signal
...
...
@@ -131,7 +132,7 @@ var InsideZoomView = DataZoomView.extend({
/**
* @private
*/
_onZoom
:
function
(
coordInfo
,
coordSysName
,
controller
,
scale
,
mouseX
,
mouseY
)
{
_onZoom
:
function
(
coordInfo
,
coordSysName
,
controller
,
e
)
{
var
lastRange
=
this
.
_range
;
var
range
=
lastRange
.
slice
();
...
...
@@ -142,7 +143,7 @@ var InsideZoomView = DataZoomView.extend({
}
var
directionInfo
=
getDirectionInfo
[
coordSysName
](
null
,
[
mouseX
,
mouse
Y
],
axisModel
,
controller
,
coordInfo
null
,
[
e
.
originX
,
e
.
origin
Y
],
axisModel
,
controller
,
coordInfo
);
var
percentPoint
=
(
directionInfo
.
signal
>
0
...
...
@@ -150,7 +151,7 @@ var InsideZoomView = DataZoomView.extend({
:
(
directionInfo
.
pixel
-
directionInfo
.
pixelStart
)
)
/
directionInfo
.
pixelLength
*
(
range
[
1
]
-
range
[
0
])
+
range
[
0
];
scale
=
Math
.
max
(
1
/
scale
,
0
);
var
scale
=
Math
.
max
(
1
/
e
.
scale
,
0
);
range
[
0
]
=
(
range
[
0
]
-
percentPoint
)
*
scale
+
percentPoint
;
range
[
1
]
=
(
range
[
1
]
-
percentPoint
)
*
scale
+
percentPoint
;
...
...
src/component/dataZoom/roams.js
浏览文件 @
c34c6785
...
...
@@ -136,8 +136,15 @@ function giveStore(api) {
function
createController
(
api
,
newRecord
)
{
var
controller
=
new
RoamController
(
api
.
getZr
());
controller
.
on
(
'
pan
'
,
curry
(
onPan
,
newRecord
));
controller
.
on
(
'
zoom
'
,
curry
(
onZoom
,
newRecord
));
zrUtil
.
each
([
'
pan
'
,
'
zoom
'
,
'
scrollMove
'
],
function
(
eventName
)
{
controller
.
on
(
eventName
,
function
(
event
)
{
wrapAndDispatch
(
newRecord
,
function
(
info
)
{
var
methodName
=
eventName
+
'
GetRange
'
;
return
info
[
methodName
]
&&
info
[
methodName
](
newRecord
.
controller
,
event
);
});
});
});
return
controller
;
}
...
...
@@ -151,17 +158,23 @@ function cleanStore(store) {
});
}
function
onPan
(
record
,
dx
,
dy
,
oldX
,
oldY
,
newX
,
newY
)
{
wrapAndDispatch
(
record
,
function
(
info
)
{
return
info
.
panGetRange
(
record
.
controller
,
dx
,
dy
,
oldX
,
oldY
,
newX
,
newY
);
});
}
function
onZoom
(
record
,
scale
,
mouseX
,
mouseY
)
{
wrapAndDispatch
(
record
,
function
(
info
)
{
return
info
.
zoomGetRange
(
record
.
controller
,
scale
,
mouseX
,
mouseY
);
});
}
// function onPan(record, dx, dy, oldX, oldY, newX, newY) {
// wrapAndDispatch(record, function (info) {
// return info.panGetRange(record.controller, dx, dy, oldX, oldY, newX, newY);
// });
// }
// function onZoom(record, scale, mouseX, mouseY) {
// wrapAndDispatch(record, function (info) {
// return info.zoomGetRange(record.controller, scale, mouseX, mouseY);
// });
// }
// function onScrollMove(record, scrollDelta) {
// wrapAndDispatch(record, function (info) {
// return info.scrollMoveGetRange(record.controller, scrollDelta);
// });
// }
function
wrapAndDispatch
(
record
,
getRange
)
{
var
batch
=
[];
...
...
src/component/helper/MapDraw.js
浏览文件 @
c34c6785
...
...
@@ -389,26 +389,26 @@ MapDraw.prototype = {
return
action
;
}
controller
.
off
(
'
pan
'
).
on
(
'
pan
'
,
function
(
dx
,
dy
)
{
controller
.
off
(
'
pan
'
).
on
(
'
pan
'
,
function
(
e
)
{
this
.
_mouseDownFlag
=
false
;
roamHelper
.
updateViewOnPan
(
controllerHost
,
dx
,
dy
);
roamHelper
.
updateViewOnPan
(
controllerHost
,
e
.
dx
,
e
.
dy
);
api
.
dispatchAction
(
zrUtil
.
extend
(
makeActionBase
(),
{
dx
:
dx
,
dy
:
dy
dx
:
e
.
dx
,
dy
:
e
.
dy
}));
},
this
);
controller
.
off
(
'
zoom
'
).
on
(
'
zoom
'
,
function
(
zoom
,
mouseX
,
mouseY
)
{
controller
.
off
(
'
zoom
'
).
on
(
'
zoom
'
,
function
(
e
)
{
this
.
_mouseDownFlag
=
false
;
roamHelper
.
updateViewOnZoom
(
controllerHost
,
zoom
,
mouseX
,
mouse
Y
);
roamHelper
.
updateViewOnZoom
(
controllerHost
,
e
.
scale
,
e
.
originX
,
e
.
origin
Y
);
api
.
dispatchAction
(
zrUtil
.
extend
(
makeActionBase
(),
{
zoom
:
zoom
,
originX
:
mouse
X
,
originY
:
mouse
Y
zoom
:
e
.
scale
,
originX
:
e
.
origin
X
,
originY
:
e
.
origin
Y
}));
if
(
this
.
_updateGroup
)
{
...
...
src/component/helper/RoamController.js
浏览文件 @
c34c6785
...
...
@@ -76,6 +76,7 @@ function RoamController(zr) {
* @param {Object} [opt]
* @param {Object} [opt.zoomOnMouseWheel=true]
* @param {Object} [opt.moveOnMouseMove=true]
* @param {Object} [opt.moveOnMouseWheel=false]
* @param {Object} [opt.preventDefaultMouseMove=true] When pan.
*/
this
.
enable
=
function
(
controlType
,
opt
)
{
...
...
@@ -86,6 +87,7 @@ function RoamController(zr) {
this
.
_opt
=
zrUtil
.
defaults
(
zrUtil
.
clone
(
opt
)
||
{},
{
zoomOnMouseWheel
:
true
,
moveOnMouseMove
:
true
,
moveOnMouseWheel
:
false
,
preventDefaultMouseMove
:
true
});
...
...
@@ -169,7 +171,7 @@ function mousemove(e) {
this
.
_opt
.
preventDefaultMouseMove
&&
eventTool
.
stop
(
e
.
event
);
this
.
trigger
(
'
pan
'
,
dx
,
dy
,
oldX
,
oldY
,
x
,
y
);
this
.
trigger
(
'
pan
'
,
{
dx
:
dx
,
dy
:
dy
,
oldX
:
oldX
,
oldY
:
oldY
,
newX
:
x
,
newY
:
y
}
);
}
function
mouseup
(
e
)
{
...
...
@@ -179,34 +181,56 @@ function mouseup(e) {
}
function
mousewheel
(
e
)
{
var
shouldZoom
=
checkKeyBinding
(
this
,
'
zoomOnMouseWheel
'
,
e
);
var
shouldMove
=
checkKeyBinding
(
this
,
'
moveOnMouseWheel
'
,
e
);
var
wheelDelta
=
e
.
wheelDelta
;
var
absWheelDeltaDelta
=
Math
.
abs
(
wheelDelta
);
// wheelDelta maybe -0 in chrome mac.
if
(
!
checkKeyBinding
(
this
,
'
zoomOnMouseWheel
'
,
e
)
||
e
.
wheelDelta
===
0
)
{
if
(
wheelDelta
===
0
||
(
!
shouldZoom
&&
!
shouldMove
)
)
{
return
;
}
// console.log(wheelDelta);
if
(
shouldZoom
)
{
// Convenience:
// Mac and VM Windows on Mac: scroll up: zoom out.
// Windows: scroll up: zoom in.
// FIXME: Should do more test in different environment.
// wheelDelta is too complicated in difference nvironment
// (https://developer.mozilla.org/en-US/docs/Web/Events/mousewheel),
// although it has been normallized by zrender.
// 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
);
}
// Convenience:
// Mac and VM Windows on Mac: scroll up: zoom out.
// Windows: scroll up: zoom in.
var
zoomDelta
=
e
.
wheelDelta
>
0
?
1.1
:
1
/
1.1
;
zoom
.
call
(
this
,
e
,
zoomDelta
,
e
.
offsetX
,
e
.
offsetY
);
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
?
1.4
:
absDelta
>
1
?
1.2
:
1.1
;
this
.
trigger
(
'
scrollMove
'
,
{
scrollDelta
:
scrollDelta
});
}
}
function
pinch
(
e
)
{
if
(
interactionMutex
.
isTaken
(
this
.
_zr
,
'
globalPan
'
))
{
return
;
}
var
zoomDelta
=
e
.
pinchScale
>
1
?
1.1
:
1
/
1.1
;
zoom
.
call
(
this
,
e
,
zoomDelta
,
e
.
pinchX
,
e
.
pinchY
);
var
scale
=
e
.
pinchScale
>
1
?
1.1
:
1
/
1.1
;
zoom
.
call
(
this
,
e
,
scale
,
e
.
pinchX
,
e
.
pinchY
);
}
function
zoom
(
e
,
zoomDelta
,
zoomX
,
zoom
Y
)
{
if
(
this
.
pointerChecker
&&
this
.
pointerChecker
(
e
,
zoomX
,
zoom
Y
))
{
function
zoom
(
e
,
scale
,
originX
,
origin
Y
)
{
if
(
this
.
pointerChecker
&&
this
.
pointerChecker
(
e
,
originX
,
origin
Y
))
{
// 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
'
,
zoomDelta
,
zoomX
,
zoomY
);
this
.
trigger
(
'
zoom
'
,
{
scale
:
scale
,
originX
:
originX
,
originY
:
originY
}
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录