我有一组使用Raphael.set()
分组的对象。我想做的是将整个组(更改x
和y
坐标)从一个地方移动到另一个地方。
如何将整个集合作为单个对象移动?
我已经发现,当调用.attr({X: newX, Y: newY})
时,集合中的每个元素将定位在该坐标上,这将导致所有元素堆积在同一位置。
我有一组使用Raphael.set()
分组的对象。我想做的是将整个组(更改x
和y
坐标)从一个地方移动到另一个地方。
如何将整个集合作为单个对象移动?
我已经发现,当调用.attr({X: newX, Y: newY})
时,集合中的每个元素将定位在该坐标上,这将导致所有元素堆积在同一位置。
编辑:参考Rick Westera的答案,因为translate
现在已被弃用。
使用.translate(x, y)
,例如:
var paper = Raphael('stage', 300, 300);
var set = paper.set();
set.push(paper.rect(0,0,30,50));
set.push(paper.circle(40,50,10));
set.push(paper.path("M 0 70 L 100 70"));
set.translate(100, 100);
translate已经被弃用,使用transform('Tx,y')
代替。例如:
var paper = Raphael('stage', 300, 300);
var set = paper.set();
set.push(paper.rect(0, 0, 100, 100));
set.push(paper.text(50, 50, "Foo"));
set.transform("T100,50");
请注意,有两种类型的翻译:
var glyphs = paper.print(0, 0, text, paper.getFont(font, 800), fontSize).hide();
glyphs.transform('...T' + [posx, posy] + 'R' + [angle, posx, posy]).show();