Fix offset when dragging large nodes.

This commit is contained in:
Mike Bostock 2011-07-08 22:39:08 -07:00
Родитель 7f8db7fd14
Коммит 5c0d8651da
3 изменённых файлов: 15 добавлений и 9 удалений

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

@ -470,14 +470,14 @@ d3.layout.force = function() {
// O NOES! The drag element was removed from the DOM.
if (!parent) {
d3_layout_forceDragNode.fixed = false;
d3_layout_forceDragNode = d3_layout_forceDragElement = null;
d3_layout_forceDragOffset = d3_layout_forceDragNode = d3_layout_forceDragElement = null;
return;
}
var m = d3.svg.mouse(parent);
d3_layout_forceDragMoved = true;
d3_layout_forceDragNode.px = m[0];
d3_layout_forceDragNode.py = m[1];
d3_layout_forceDragNode.px = m[0] - d3_layout_forceDragOffset[0];
d3_layout_forceDragNode.py = m[1] - d3_layout_forceDragOffset[1];
force.resume(); // restart annealing
}
@ -493,7 +493,7 @@ d3.layout.force = function() {
dragmove();
d3_layout_forceDragNode.fixed = false;
d3_layout_forceDragNode = d3_layout_forceDragElement = null;
d3_layout_forceDragOffset = d3_layout_forceDragNode = d3_layout_forceDragElement = null;
}
return force;
@ -501,6 +501,7 @@ d3.layout.force = function() {
var d3_layout_forceDragNode,
d3_layout_forceDragMoved,
d3_layout_forceDragOffset,
d3_layout_forceStopClick,
d3_layout_forceDragElement;
@ -515,9 +516,11 @@ function d3_layout_forceDragOut(d) {
}
function d3_layout_forceDragDown(d, i) {
var m = d3.svg.mouse(this.parentNode);
(d3_layout_forceDragNode = d).fixed = true;
d3_layout_forceDragMoved = false;
d3_layout_forceDragElement = this;
d3_layout_forceDragOffset = [m[0] - d.x, m[1] - d.y];
d3_layout_forceCancel();
}

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

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

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

@ -264,14 +264,14 @@ d3.layout.force = function() {
// O NOES! The drag element was removed from the DOM.
if (!parent) {
d3_layout_forceDragNode.fixed = false;
d3_layout_forceDragNode = d3_layout_forceDragElement = null;
d3_layout_forceDragOffset = d3_layout_forceDragNode = d3_layout_forceDragElement = null;
return;
}
var m = d3.svg.mouse(parent);
d3_layout_forceDragMoved = true;
d3_layout_forceDragNode.px = m[0];
d3_layout_forceDragNode.py = m[1];
d3_layout_forceDragNode.px = m[0] - d3_layout_forceDragOffset[0];
d3_layout_forceDragNode.py = m[1] - d3_layout_forceDragOffset[1];
force.resume(); // restart annealing
}
@ -287,7 +287,7 @@ d3.layout.force = function() {
dragmove();
d3_layout_forceDragNode.fixed = false;
d3_layout_forceDragNode = d3_layout_forceDragElement = null;
d3_layout_forceDragOffset = d3_layout_forceDragNode = d3_layout_forceDragElement = null;
}
return force;
@ -295,6 +295,7 @@ d3.layout.force = function() {
var d3_layout_forceDragNode,
d3_layout_forceDragMoved,
d3_layout_forceDragOffset,
d3_layout_forceStopClick,
d3_layout_forceDragElement;
@ -309,9 +310,11 @@ function d3_layout_forceDragOut(d) {
}
function d3_layout_forceDragDown(d, i) {
var m = d3.svg.mouse(this.parentNode);
(d3_layout_forceDragNode = d).fixed = true;
d3_layout_forceDragMoved = false;
d3_layout_forceDragElement = this;
d3_layout_forceDragOffset = [m[0] - d.x, m[1] - d.y];
d3_layout_forceCancel();
}