How do I change a value for a Fabric.js object?

冷暖自知 提交于 2019-12-01 23:46:54
Kienz

There are many getters and setters for values:

object.setWidth(val);
object.setHeight(val);
object.setStrokeWidth(val);
object.setLeft(val);
object.setTop(val);

You can also change values with general set method:

object.set('width', value);
object.set({ width: value, height: value});

If you change dimension or position affecting properties you have to call object.setCoords() after changing the property. Otherwise the "click area" of the object is wrong. After changing properties you have to call canvas.renderAll() to re-render all objects.

For more information just have a look at the docs: fabricjs.com/docs/fabric.Object.html

Apparently setters are removed in the latest version of Fabric.js (using version 2.7.0). You can now simply set the properties on the object directly:

// Set your new property values
object.width = val;
object.height = val;
object.strokeWidth = val;
object.left = val;
object.top = val;

// Then you mark the object as "dirty" and render the canvas:
object.dirty = true;
canvas.renderAll();

Alternatively you can set all properties at once using the set method an object like this:

// Set all properties at once using the set method
object.set({ 
    width: val, 
    height: val,
    strokeWidth: val,
    left: val,
    top: val
});

// In this case the setter marks the object as "dirty" so you only need to call renderAll
canvas.renderAll();
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!