SVGを元の変換行列属性に戻したいです。私はこの行列を使ってSVGをズームイン/ズームアウトするスケール関数を持っています。しかし、私は最初に持っていた変換マトリックスにSVGを戻すことができるようにしたい。SVGを元の変換行列にリセットします
私は最初に変換行列の属性を配列にロードします。次にそれを私のスケール関数で使用します。
元の値をスケール関数で扱わないように保存するにはどうすればよいのですか?SVGをリセットするために使用できますか?
はここにある私のJSfiddle
これは私のスクリプトです:
$(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);
}
});
ありがとうございます!それは仕事:) –