Merge branch 'zoom-center' into 3.3

Conflicts:
	src/behavior/zoom.js
This commit is contained in:
Mike Bostock 2013-08-13 14:16:39 -07:00
Родитель d11205b4d9 83c8824197
Коммит b6b64946ce
3 изменённых файлов: 21 добавлений и 7 удалений

12
d3.js поставляемый
Просмотреть файл

@ -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() {

4
d3.min.js поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -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_);
}