javascript - 拉斐尔js : Scale and translate elements in a set proportionally

标签 javascript raphael

似乎如果你在 raphael 中缩放一个集合,它会缩放里面的元素,但不会按比例平移它们。因此,例如,如果我的集合中有两个相邻的方 block ,并且我缩放了设置,则这些方 block 开始相互重叠,而不是第二个方 block 在调整大小时移动,以便保持在第一个方 block 旁边。有没有办法让拉斐尔产生这种行为?

最佳答案

正如 Ian 提到的,关键是设置比例的 X、Y 原点。默认情况下,当您缩放元素时,它使用元素的几何中心作为原点进行缩放:

path.transform('S1.5'); // Scale 1.5x in both axis

因此,如果缩放一组对象,它将从其各自的几何中心缩放每个单独的元素。

但是您可以选择为比例设置 X 和 Y 原点:

path.transform('S1.5,1.5,0,0'); // Scale 1.5 in X and 1.5 in Y, with origin set at the Paper's 0,0 as the origin.

因此,如果您有一组元素,并且所有元素都使用纸张的 0,0 作为缩放原点进行缩放,那么它们都将按比例相互缩放。

关于javascript - 拉斐尔js : Scale and translate elements in a set proportionally,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23430652/

相关文章:

javascript - 如何将 "slugified-title"转换为 "Slugified Title"

jquery - 获取 SVG 元素作为 Raphael 对象

javascript - 为什么这个回调函数没有添加bind.(this)?

javascript - Three.js 中 Material 的灯无法正常工作

javascript - 将 JSON 数据加载到 Bootstrap 模式中

php - JQuery 不会检查类型文件的输入值是否为空?

javascript - 如何获取 Snap.svg 中的 SVG 根元素?

jquery - 拉斐尔元素选择问题

jquery - Raphael JS 的径向饼图菜单

javascript - 拉斐尔JS : How to animate element after another elements animation is done?