在Fabric.js中出现形状的情况下,如何知道有人正在调整大小以使其变小还是变大
How to know whether someone is resizing to make it smaller or bigger in case of shapes in Fabric.js
我正在开发Fabricjs库,希望在用户重新调整大小以使矩形(任何形状)变小或变大时进行验证。
意味着当用户调整大小以使其变小时,调用某个函数;当用户调整尺寸以增加大小时,调用另一个函数。
这在Fabricjs中可能吗?
您可以使用结构的canvas.on()
方法来附加事件侦听器。
您要查找的是'object:scaling'
或'object:resizing'
然后,您只需要查看对象的scaleX
和scaleY
或width
和height
属性,就可以知道它是在增加还是在减少。
var canvas = new fabric.Canvas('c');
// create a rectangle object
var rect = new fabric.Rect({
left: 100,
top: 100,
fill: 'red',
width: 20,
height: 20
});
// one listener for the scale event (could be resize)
function scaleListener(e) {
// get the object being rescaled
var targ = e.target;
// check if we the scale was bigger than the new one
if (targ.scaleX > (targ.lastScaleX || 1) || targ.scaleY > (targ.lastScaleY || 1)) {
// it was
bigger();
} else {
// it wasn't
smaller();
}
// save the current scale as the last one in the object itself
targ.lastScaleX = targ.scaleX;
targ.lastScaleY = targ.scaleY;
};
function bigger() {
rect.fill = 'blue';
}
function smaller() {
rect.fill = 'green';
}
// "add" rectangle onto canvas
canvas.add(rect);
canvas.on({
'object:scaling': scaleListener,
});
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.5.0/fabric.js"></script>
<canvas id="c"><</canvas>
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 调整窗口大小时,可拖动的对象会出现在容器外部
- ExtJS——在展开/折叠时调整面板高度
- 知道为什么我的旋转木马不会自动更改图片吗
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- 我可以'我似乎不知道如何修复javascript中的两个lint.有人能帮我理解吗
- 如何知道哪个标记被谷歌地图点击了
- Chrome应用程序调整窗口大小保持纵横比
- 在不知道深度或父属性的情况下从对象中删除属性
- 如何自动调整标签的高度以适应内容
- 导航栏没有调整到浏览器屏幕的大小
- 调整屏幕大小后不显示子菜单
- 使用JavaScript根据窗口/视口的高度动态调整图像大小
- Steam Web API:I'我不知道该如何处理这个看起来像哈希的url来生成图像
- 合并两个数组,重新调整循环js
- 是否有可能知道用户何时点击YouTube视频上的广告
- 在Fabric.js中出现形状的情况下,如何知道有人正在调整大小以使其变小还是变大
- 将图像调整大小/拉伸到只有在页面加载后才知道的尺寸
- 我想知道浏览器“;视口”;调整大小