javascript - 调整 Fabricjs 矩形的大小以保持边框大小

标签 javascript fabricjs

我想调整 Fabricjs 矩形的大小而不是缩放它,但在拖动调整大小 handle 时我看到了奇怪的行为。边界开始消失或重复。我已经尝试过fabricjs的稳定版本1.7.19和beta 2.0.0。

这是我正在使用的代码的本质:

canvas.on('object:scaling', function(){
    var obj = canvas.getActiveObject(),
        width = obj.width,
        height = obj.height,
        scaleX = obj.scaleX,
        scaleY = obj.scaleY;

    obj.set({
        width : width * scaleX,
        height : height * scaleY,
        scaleX: 1,
        scaleY: 1
    });
});

此处的工作示例:https://codepen.io/bramchi/pen/GMLYEV/

尝试通过拖动调整大小 handle 将其放大或缩小一点。

Screenshot of scaling up and down issues

我期望发生的是拖动 handle 时矩形会增大和缩小,并且边框大小保持不变。但不知怎的,如果你超过 270px 左右,渲染就会开始变得疯狂。当释放鼠标按钮时,它会再次正确渲染。

我做错了什么?谁知道修复方法?或者这可能是我可以报告的库中的错误?

最佳答案

禁用对象缓存以避免这种渲染行为:

fabric.Object.prototype.objectCaching = false;

出于性能原因Fabric.js caches objects默认情况下,在拖动旋转倾斜缩放操作期间。 Fabric.js 存储库的一位版主为我指明了正确的方向,为他万岁!

关于javascript - 调整 Fabricjs 矩形的大小以保持边框大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46878814/

相关文章:

javascript - 边界框外观 - 使用 fabricjs 控制自定义

javascript - 根据其中一个键删除重复的对象

javascript - sublime text webgl 自动完成

responsive-design - 如何为 Fabric.js 启用响应式设计

javascript - Fabric.js 与 Typescript 和 Webpack : Canvas is not a constructor

javascript - 保留 Canvas 上图像的原始质量

javascript - Fabric JS 组选择和缩放弄乱了单个对象位置属性

javascript - 数组中的项目推送超出了需要的数量

javascript - 如何在图像上制作圆形蒙版

javascript - 可选解构函数参数