2014-10-19 115 views
-1

我與svg-edit我的項目工作,並正在改變svgedit.compiled.js按照我的需要,我在這裏得到一些問題,想選擇的元素transform這是在transform matrix ,我可以在svg中獲得所選元素的transformSVG getCTM()沒有得到確切值

我的代碼,以獲得當前transform如果元素是遵循

var my_selected= selectedElements[0].id; 
//alert(my_selected); 
var child_sel=$('#'+my_selected).children("g").attr('id'); 

var child_each=$('#'+my_selected); 
    //console.log(child_each); 
    child_each.each(function() { 
     var child_trans = $(this).attr('transform'); 
     /* dx_x = x - start_x; 
     dy_x = y - start_y; */ 
     $(this).children('g').each(function() { 
     if(this.id!='drag_drop') { 
     var test_x = $(this).attr('transform'); 
     console.log(test_x); 
     var ss=this.getCTM(); 
     console.log(ss); 
     } 
     }); 
    }); 

但是從console.log(test_x);我用this.getCTM(),但沒有得到該值作爲下一行我得到相同的元素transformmatrix(0, 0.722035, -0.51, 0, 1561, 776.524) 得到以前的價值而不是價值低於價值

rotation : 90 
scaleX : 0.7220349907875061 
scaleY : 0.5099999904632568 
skewX :  90 
skewY : 90 
translateX : 4060 
translateY : 2376.5234375 

什麼在這裏做錯了?任何線索?

+0

對不起,我不能得到你? @RobertLongson – 2014-10-19 10:46:34

+0

正在使用'svg-edit' – 2014-10-19 10:55:52

+0

什麼是SVG元素,即您要調用的SVG文件。 – 2014-10-19 11:49:35

回答

0

這裏我記憶猶新,但是當數值偏離很小時,就是因爲邊界。我相信這是因爲getCTM沒有考慮邊界寬度,而是使用了變換矩陣,反之亦然。如果它存在,請嘗試getScreenCTM或element.clientX。

請創建一個小提琴演示問題的更多幫助。