如何改变raphael图标的大小?

时间:2012-12-19 17:49:08

标签: javascript jquery css raphael

如何从免费的Raphael图标中更改图标的宽度和高度?

我尝试使用attr,尝试使用%,就像var paper = Raphael("canvas", 100%, 100%);一样。

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

upd:我尝试使用“scale”和“transform”,但是图标从中心调整大小并且不能正确地适合父级

1 个答案:

答案 0 :(得分: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(“path coordinates”)。transform('s2,3');

其中2表示宽度& 3是高度。