javascript - fabricjs:缩放后如何显示对象大小

标签 javascript jquery wordpress woocommerce fabricjs

我正在使用名为“Woocommerce Product Designer”的 wordpress 插件,其中包含一个名为 fabicjs 的 JavaScript 库,版本为 1.4.9。

我需要一种方法来在重新缩放之后(或同时)显示织物中对象的宽度和高度。

我直接在文件 fabric-all.min.js 中做了一些调整:

_beforeTransform: function (e, t) {
    var myHeight = Math.floor(t.currentHeight);
    var myWidth = Math.floor(t.currentWidth);
    if(!jQuery("#size").length){
        jQuery('<p id="size"></p>').insertBefore(".upper-canvas");
    }
    else{
        jQuery("#size").html("<span>size: </span>"+myWidth +" x "+myHeight +" cm"+"<br>");
    }                                                  
    var n;
    this.stateful && t.saveState(), (n = t._findTargetCorner(this.getPointer(e))) && this.onBeforeScaleRotate(t), t !== this.getActiveGroup() && t !== this.getActiveObject() && (this.deactivateAll(),     this.setActiveObject(t, e))
},

它可以工作,但它会在当前转换开始之前显示上一次转换的值。通过这种方式,我需要另一个 Action (例如简单地点击对象)来更新当前值。

所以我需要调用一些模拟点击对象的函数来更新值,或者将我的代码移动到另一个函数,该函数在转换期间(或之后)调用并且可以访问有关当前对象大小的信息。

最佳答案

我认为更改 fabricJs 源不是一个好主意。最好扩展它或做一些功能。我造了你jsFiddle以及如何在缩放时获取对象的宽度和高度。

canvas.on('object:scaling', function(){
    var obj = canvas.getActiveObject();
    $('#rect-width').val(Math.floor(obj.getWidth()));
    $('#rect-height').val(Math.floor(obj.getHeight()));
});

关于javascript - fabricjs:缩放后如何显示对象大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30719319/

相关文章:

javascript - 我不断收到 'Uncaught TypeError: Cannot read property ' value' of null' 响应,但不明白为什么

javascript - 检索在 onchange javascript 事件中创建的 javascript 变量

php - 在 Woocommerce 中具有最大成本的基于累进数量的运输成本

javascript - 在滚动顶部动画时防止硬滚动时晃动

javascript - 变量在 Controller 中更新但未在 HTML 中更新?

javascript - 如何添加/删除参数以与 jquery 链接

javascript - document.ready() 和其他定义函数中的局部变量

php - 避免在为 WooCommerce 可变产品选择变体时更改图像

jquery - bootstrap-select 默认样式似乎不正确

javascript - 无法使用 AJAX 和 jQuery POST 到我的 API