Merge branch 'zoom-center' into 3.3
Conflicts: src/behavior/zoom.js
This commit is contained in:
Коммит
b6b64946ce
|
@ -1138,7 +1138,7 @@ d3 = function() {
|
|||
return d3.rebind(drag, event, "on");
|
||||
};
|
||||
d3.behavior.zoom = function() {
|
||||
var translate = [ 0, 0 ], translate0, scale = 1, scaleExtent = d3_behavior_zoomInfinity, mousedown = "mousedown.zoom", mousemove = "mousemove.zoom", mouseup = "mouseup.zoom", mousewheelTimer, touchstart = "touchstart.zoom", touchmove = "touchmove.zoom", touchend = "touchend.zoom", touchtime, event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"), x0, x1, y0, y1;
|
||||
var translate = [ 0, 0 ], translate0, center, scale = 1, scaleExtent = d3_behavior_zoomInfinity, mousedown = "mousedown.zoom", mousemove = "mousemove.zoom", mouseup = "mouseup.zoom", mousewheelTimer, touchstart = "touchstart.zoom", touchmove = "touchmove.zoom", touchend = "touchend.zoom", touchtime, event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"), x0, x1, y0, y1;
|
||||
function zoom() {
|
||||
this.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + ".zoom", mousewheeled).on(mousemove, mousewheelreset).on("dblclick.zoom", dblclicked).on(touchstart, touchstarted);
|
||||
}
|
||||
|
@ -1159,6 +1159,11 @@ d3 = function() {
|
|||
scaleExtent = x == null ? d3_behavior_zoomInfinity : x.map(Number);
|
||||
return zoom;
|
||||
};
|
||||
zoom.center = function(_) {
|
||||
if (!arguments.length) return center;
|
||||
center = _ && _.map(Number);
|
||||
return zoom;
|
||||
};
|
||||
zoom.x = function(z) {
|
||||
if (!arguments.length) return x1;
|
||||
x1 = z;
|
||||
|
@ -1293,9 +1298,10 @@ d3 = function() {
|
|||
zoomended(event_);
|
||||
}, 50);
|
||||
d3_eventPreventDefault();
|
||||
if (!translate0) translate0 = location(d3.mouse(this));
|
||||
var point = center || d3.mouse(this);
|
||||
if (!translate0) translate0 = location(point);
|
||||
scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * scale);
|
||||
translateTo(d3.mouse(this), translate0);
|
||||
translateTo(point, translate0);
|
||||
zoomed(event_);
|
||||
}
|
||||
function mousewheelreset() {
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -10,6 +10,7 @@ import "behavior";
|
|||
d3.behavior.zoom = function() {
|
||||
var translate = [0, 0],
|
||||
translate0, // translate when we started zooming (to avoid drift)
|
||||
center, // desired position of translate0 after zooming
|
||||
scale = 1,
|
||||
scaleExtent = d3_behavior_zoomInfinity,
|
||||
mousedown = "mousedown.zoom",
|
||||
|
@ -54,6 +55,12 @@ d3.behavior.zoom = function() {
|
|||
return zoom;
|
||||
};
|
||||
|
||||
zoom.center = function(_) {
|
||||
if (!arguments.length) return center;
|
||||
center = _ && _.map(Number);
|
||||
return zoom;
|
||||
};
|
||||
|
||||
zoom.x = function(z) {
|
||||
if (!arguments.length) return x1;
|
||||
x1 = z;
|
||||
|
@ -215,9 +222,10 @@ d3.behavior.zoom = function() {
|
|||
else zoomstarted(event_);
|
||||
mousewheelTimer = setTimeout(function() { mousewheelTimer = null; zoomended(event_); }, 50);
|
||||
d3_eventPreventDefault();
|
||||
if (!translate0) translate0 = location(d3.mouse(this));
|
||||
var point = center || d3.mouse(this);
|
||||
if (!translate0) translate0 = location(point);
|
||||
scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * scale);
|
||||
translateTo(d3.mouse(this), translate0);
|
||||
translateTo(point, translate0);
|
||||
zoomed(event_);
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче