2012-12-19 84 views
6

我可以如何改变自由拉斐尔图标的宽度和图标高度?如何更改raphael图标的大小?

我试着用attr,试图用%,像这样var paper = Raphael("canvas", 100%, 100%);

我需要这样做:如果我更改父块的大小,我的图标的大小也会发生变化。

UPD:我试图用“规模”和“改造”,但是图标会从中心调整大小和不适合的父母正确

回答

3

按照Raphael.js文档

var el = paper.rect(10, 20, 300, 200); 
// translate 100, 100, rotate 45°, translate -100, 0 
el.transform("t100,100r45t-100,0"); 
// if you want you can append or prepend transformations 
el.transform("...t50,50"); 
el.transform("s2..."); 
// or even wrap 
el.transform("t50,50...t-50-50"); 
// to reset transformation call method with empty string 
el.transform(""); 
// to get current value call it without parameters 
console.log(el.transform()); 

Check this Fiddle: 演示所有转换

var icon = paper.rect(100,200,100,100); 

var anim = Raphael.animation({ 
    "10%":{transform:'t100,0'}, //transform on x-axis 
    "20%":{transform:'...t0,100'},//transform on y-axis 
    "30%":{transform:'...t-100,0'},//transform on x-axis(negative) 
    "40%":{transform:'...t0,-100'},//transform on y-axis(negative) 
    "50%":{transform:'...t200,200'},//transform diagonally 
    "60%":{transform:'...t-100,-100'},//transform diagonally(negative) 
    "70%":{transform:'...s1,1.5'},//scale y-axis 
    "80%":{transform:'...s1.5,1'},//scale x-axis 
    "90%":{transform:'...s2'},//scale in both direction 
    "100%":{transform:'...r45'},//rotate 
},5000); 

icon.animate(anim.delay(1000)); 

所以你的情况,你就必须做到这一点:

VAR somename = paper.path( “路径坐标”)变换( 's2,3');

其中2代表宽度& 3代表高度。

+0

thx,但它不是绝对正确的我的问题。如果我使用你的代码转换,我会得到相同的效果,如文档中的“element.scale”。 –

+0

所以你想要做什么 –

+0

如果我改变父宽度和高度 - 图标填充所有空间。谢谢。 –