Ich versuche, meine SVG wieder in seinem ursprünglichen Transformationsmatrix Attribut zurückgesetzt werden. Ich habe eine Skalierungsfunktion, die diese Matrix verwendet, um das SVG zu vergrößern und zu verkleinern. Ich möchte jedoch in der Lage sein, das SVG auf die Transformationsmatrix zurückzusetzen, die es zuerst hatte.Zurücksetzen SVG ursprüngliche Transformationsmatrix
I laden die erste Matrix Attribut in ein Array-Transformation, die ich dann in meiner Skala Funktion verwenden.
Wie kann ich die ursprünglichen Werte zu speichern, damit sie nicht durch meine Skalierungsfunktion berührt werden, und so kann ich ihnen die SVG zurücksetzen?
Hier ist meine JSfiddle
Das ist mein Skript:
$(document).ready(function() {
var newMatrix;
var transMatrix = $("#svgGroup").attr("transform").replace(/[^0-9.,]+/, "");
transMatrix = transMatrix.split(",");
var origMatrix = [1,0,0,1, parseFloat(transMatrix[4]), parseFloat(transMatrix[5])];
$("#out").click(function() {
zoom(0.8)
});
$("#in").click(function() {
zoom(1.25);
});
$("#reset").click(function() {
alert(origMatrix)
$("#svgGroup").attr("transform", "matrix(" + origMatrix + ")");
});
function zoom(scale) {
for (var i=0; i<origMatrix.length; i++) {
origMatrix[i] *= scale;
}
newMatrix = "matrix(" + origMatrix.join(' ') + ")";
$("#svgGroup").attr("transform", newMatrix);
}
});
Vielen Dank! Das macht den Job :) –