我试图在d3.js版本4上实现与Wil Linssen实现的相同行为,但是我对版本4中的缩放API感到非常困惑。
我对原始实现所做的更改是将zoom.translate()
替换为d3.zoomTransform(selection.node())
并添加适当的点:
svg.attr("transform",
"translate(" + t.x + "," + t.y + ")" +
"scale(" + t.k + ")"
);
这是一个例子:
zoom
.scale(iScale(t))
.translate(iTranslate(t));
替换为
var foo = iTranslate(t);
zoom.
translateBy(selection, foo[0], foo[1]);
zoom
.scaleBy(selection, iScale(t));
但还存在一个问题,似乎是缩放导致的...
谢谢帮助。
var self = this;
这句话。 - mgc