Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to change size of raphael icons?

how I can change the width and the height of icons from free Raphael icons ?

I tried to use attr, tried to use % , like this var paper = Raphael("canvas", 100%, 100%);.

I need to do this: if I change the size of the parent block, the size of my icon changes too.

upd: i tried use "scale" and "transform", but icon resize from centre and not fit into the parent correctly

like image 519
Max P Avatar asked Dec 19 '12 17:12

Max P


1 Answers

According to the Raphael.js documentation

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: Demonstration of all the transformations

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));

So in your case you'll have to do this:

var somename = paper.path("path coordinates").transform('s2,3');

where 2 is for width & 3 is for height.

like image 142
rohan_vg Avatar answered Nov 13 '22 12:11

rohan_vg