【问题标题】:How to zoom all elements pof canvas with one click?如何一键缩放画布的所有元素?
【发布时间】:2012-07-17 20:53:32
【问题描述】:

我在我的一个项目中使用了 fabric.js。 我正在使用缩放功能。我想知道是否有一种简单的方法可以在单击时放大所有画布(包含所有元素)。

【问题讨论】:

标签: fabricjs


【解决方案1】:

试试这个 jsfiddle 演示单击按钮的缩放:http://jsfiddle.net/cmontgomery/H7Utw/1/。本质上,您可以在画布上获取所有对象并按相同的因子缩放/移动它们,从而提供缩放的视觉外观。

var objects = canvas.getObjects();
for (var i in objects) {
    var scaleX = objects[i].scaleX;
    var scaleY = objects[i].scaleY;
    var left = objects[i].left;
    var top = objects[i].top;

    var tempScaleX = scaleX * SCALE_FACTOR;
    var tempScaleY = scaleY * SCALE_FACTOR;
    var tempLeft = left * SCALE_FACTOR;
    var tempTop = top * SCALE_FACTOR;

    objects[i].scaleX = tempScaleX;
    objects[i].scaleY = tempScaleY;
    objects[i].left = tempLeft;
    objects[i].top = tempTop;

    objects[i].setCoords();
}

canvas.renderAll();

【讨论】:

    【解决方案2】:

    如果您在不修改所有对象的情况下对 fabricjs 使用缩放,请使用:https://github.com/wojtek-krysiak/fabricjs-viewport

    示例:http://wojtek-krysiak.github.io/fabricjs-viewport/

    【讨论】:

      猜你喜欢
      • 2012-03-07
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 2012-01-30
      • 1970-01-01
      • 1970-01-01
      • 2016-08-20
      • 2012-06-17
      相关资源
      最近更新 更多