【发布时间】:2012-07-17 20:53:32
【问题描述】:
我在我的一个项目中使用了 fabric.js。 我正在使用缩放功能。我想知道是否有一种简单的方法可以在单击时放大所有画布(包含所有元素)。
【问题讨论】:
-
没有这样的内置功能,但您可以尝试在 google 群组中搜索当前的解决方案 — groups.google.com/forum/?fromgroups#!forum/fabricjs
标签: fabricjs
我在我的一个项目中使用了 fabric.js。 我正在使用缩放功能。我想知道是否有一种简单的方法可以在单击时放大所有画布(包含所有元素)。
【问题讨论】:
标签: fabricjs
试试这个 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();
【讨论】:
如果您在不修改所有对象的情况下对 fabricjs 使用缩放,请使用:https://github.com/wojtek-krysiak/fabricjs-viewport。
【讨论】: