Ich möchte die Zoom-Funktionalität von D3 nutzen, aber ich muss alle Übersetzungen/Skalierungen meines SVG mit der Eigenschaft viewBox anstelle der Transform-Methode wie in gezeigt durchführen das D3-Beispiel: http://bl.ocks.org/mbostock/3680999So verwenden Sie das D3-Zoom-Verhalten mit ViewBox anstelle von
Wie kann ich die gleiche Skalierung/Übersetzung nur mit der viewBox erreichen? Hier ist mein Code soweit, der nicht so gut funktioniert wie die Transformationsmethode.
function zoomed(d) {
if (!scope.drawLine) {
var scale = d3.event.scale;
var translation = d3.event.translate;
//This works, but I can't use it for reason's I won't go into now
//mapSVG_G.attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
var newViewBox = [
initialViewBox[0] - translation[0],
initialViewBox[1] - translation[1],
initialViewBox[2]/scale,
initialViewBox[3]/scale
];
mapSVG.attr('viewBox', newViewBox);
}
}
Leider ist die Übersetzungsfunktionalität dieser Lösung nicht korrekt. – Doughy