fabricjs:缩放后如何显示对象大小
fabricjs: how to show object size after scaling
我正在使用名为 "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))
},
它有效,但它会在当前转换开始之前显示上一次转换的值。通过这种方式,我需要另一个动作(例如简单地点击对象)来更新当前值。
所以我需要调用一些函数来模拟单击对象来更新值,或者将我的代码移动到另一个函数,该函数在转换期间(或之后)调用并且可以访问有关当前对象大小的信息。
我认为更改 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()));
});
我正在使用名为 "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))
},
它有效,但它会在当前转换开始之前显示上一次转换的值。通过这种方式,我需要另一个动作(例如简单地点击对象)来更新当前值。
所以我需要调用一些函数来模拟单击对象来更新值,或者将我的代码移动到另一个函数,该函数在转换期间(或之后)调用并且可以访问有关当前对象大小的信息。
我认为更改 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()));
});