2014-07-03 69 views
0

任何人都知道爲什麼當我使用下面的代碼將矩陣應用於svg的整個路徑時,有一些問題,如settimeout函數完成時svg被剪切或跳躍? :如何將矩陣變換應用於整個svg的路徑而不僅僅是一條路徑?

var matrix = g.transform().localMatrix; 
    var mySet = g.selectAll('path'); 
    mySet.forEach(function(el) { 
    var newPathString = Snap.path.map(el, matrix).toString(); 
    el.attr({ d: newPathString }); 
    }); 

var svg = g.select('svg'); 
var newObj = svg.clone(); 
s.g(newObj); 
g.remove(); 
setTimeout(function(){alert(newObj.toString())},8000); 

}, 7000); 
}); 

編輯:我想要實現的是獲得應用了矩陣變換的svg路徑標記。

回答

1

嘗試插入所有的path標籤inot a g標籤並將轉換應用於該g標籤。

+0

感謝Vlas,我加載了一個svg文件並試圖從該svg文件中獲取所有路徑。在這種情況下,你會建議從svg文件獲取entie路徑嗎? – user3117671

+0

重新使用appendChild的路徑。 –

+0

Robert,其實我用過這個:el.attr({d:newPathString})。appendChild();但它確實使代碼停止工作,我猜。我猜是因爲'appendChild是一個DOM方法(不是Snap方法)'。 – user3117671

相關問題