画布对象上的Fabric JS事件

布莱恩·梅因斯

我正在使用fabric.js API将64位基本图像加载到画布中。我需要做的是确定画布上的对象何时调整大小。我找不到有关事件在画布上的对象的任何文档。有没有办法监听这些对象上的事件?在画布或窗口上收听调整大小的操作无效:

$("canvas").on("resize", function () {
    console.log("Resize occurred"); //not called
});
埃塔罕

您在这里寻找的不是画布上的resize事件,除非您调整画布元素本身的大小,否则不会触发,而是画布上渲染的对象的resize事件。由于您正在使用fabricjs渲染图像,因此您可以监听fabricjs事件以获得所需的结果。您可以在此处找到所有fabricjs事件的概述在您的情况下object:scaled将是听事件。以下可运行代码段说明了一个示例:

const canvas = new fabric.Canvas('canvas', {
  selection: false
});
const imageElement = document.getElementById('image');
const img = new fabric.Image(imageElement, {
  left: 20,
  top: 20,
  scaleX: 1,
  scaleY: 1
});
canvas.add(img);


canvas.on('object:scaled', (options) => {
  console.log(
    "Object was scaled, current scaleX:",
    options.target.scaleX,
    " and scaleY: ",
    options.target.scaleX)
});
canvas {
  border: 1px solid #000;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.4.0/fabric.min.js"></script>

<canvas id="canvas" width="300" height="200"></canvas>
<img style="display: none" id="image" src="https://images.unsplash.com/photo-1507146426996-ef05306b995a?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=200&q=80" />

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法在画布上添加新对象(fabric.js)

我如何使用 if isType() 为画布上的每个对象使用fabric js?

使用fabric.js从矩形区域获取对象并将其绘制到画布上

缩放fabric.js画布对象

Fabric.js画布上的GIF动画

画布触摸事件js

fabric.js 围绕画布中心平滑地旋转对象

禁用对象选择上的鼠标事件,并在Fabric JS中清除对象选择后启用它

fabric.js画布监听键盘事件吗?

SVG无法使用Fabric.js在画布上正确渲染

如何在画布上更改SVG颜色-Fabric.js

使用fabric.js更改画布上的绘图光标

画布旋转 - Fabric js

与画布内画布对象上的事件侦听器相关的问题以及其他问题

在将对象添加到Fabric.js中的画布时设置对象的位置

在画布JS P5上循环对象

Fabric Js-是否可以将图像对象自动缩放到画布?

防止Fabric js对象扩展到画布边界之外

Fabric.js:如何计算旋转组内对象的画布相对位置

Fabric JS从画布发送图像

我如何在我的fabric.js画布中引入基于键的事件?

fabric.js将事件侦听器分配给多个事件的对象

在画布HTML5和Fabric js中的图像上添加删除图标

如何在Angular 8中修改画布上fabric.js背景图像的图像选项

如何在Mozzila上获取fabric.js画布鼠标坐标

如何使用angular7和fabric js在画布上显示pdf

Fabric.js:画布上的笔触颜色和宽度svg文件存在问题

Fabric JS-不要在画布上添加两个以上的文本区域

将fabric.js画布另存为PC上的图像