第二次调用scale()不会缩放

时间:2014-10-12 01:50:05

标签: fabricjs

在jsbin的示例中,如果单击按钮一次,则rect会缩放,但第二次,它不会缩放。

我想,如果你继续调用scale(0.75)那么它会缩放当前大小的75%,所以它基本上会越来越小。

我确定我遗漏了一些非常基本的东西,因为我的例子非常简单,但我已经阅读了这么多文档,而我仍然无法弄明白。有什么想法吗?

http://jsbin.com/zajehudurido

1 个答案:

答案 0 :(得分:1)

这是因为rect是从原始大小缩放的,你创建它后设置(350x350)。 如果您希望每次都从实际大小进行缩放,则需要重新计算rect.scale方法的参数。例如。保存前一个值并每次乘以0.75:

var ratio = 1;
function resize() {
    ratio =  ratio * 0.75;
    rect.scale(ratio);
    canvas.renderAll();
}