问题描述
我有一个对象,点击后会在我的画布上生成一个图像。如何禁用对这个生成的图像对象的选择?
我在代码中添加了以下内容:canvas.selection = false;
这将禁用单击功能对对象的选择,但对于添加的任何新图像对象,它不起作用。
示例(点击最小的蓝点):https://codepen.io/twan2020/pen/yLVbvGb 你不能移动蓝点,但可以移动添加的图像。
我尝试在创建图像的函数中添加以下行:printzelf.selection = false
但这仍然不起作用。我也试过在参数旁边添加 selection: false
,但没有成功。
savebtnclick.onclick = function() {
var imgurL = 'https://printzelf.nl/new/assets/images/logo_gewoon.png';
var printzelfImg = new Image();
printzelfImg.onload = function (img) {
var printzelf = new fabric.Image(printzelfImg,{
width: 350,height: 100,left: 450,top: 70,scaleX: .25,scaleY: .25,id: 'testimg',selection: false
});
canvas.add(printzelf);
printzelf.selection = false;
};
printzelfImg.src = imgurL;
}
如何禁用对所有内容的选择?包括新添加的对象?把它改成静态画布不是一个选择,因为我失去了太多的功能。
解决方法
fabric.js 为其 Image 类提供了一个名为 selectable 的属性。 如果设置为 false,则无法移动/旋转/缩放图像。
printzelfImg.onload = function (img) {
var printzelf = new fabric.Image(printzelfImg,{
width: 350,height: 100,left: 450,top: 70,scaleX: .25,scaleY: .25,id: 'testimg',selectable: false
});
canvas.add(printzelf);
printzelf.selection = false;
};