【发布时间】:2021-05-19 11:08:00
【问题描述】:
我有一个功能,可以在单击画布内的圆圈时在鼠标按下时添加图像。现在每次我单击圆圈时都会添加一个新图像,这不是我想要的。我想要某种切换功能,以便在第二次单击时删除图像并在第三次添加新图像,依此类推。
我现在的功能是这样的:
cirkel1.on('mousedown', ()=>{
var imgURL = 'https://i1.wp.com/nypost.com/wp-content/uploads/sites/2/2020/04/pugs-coronavirus.jpg';
var pugImg = new Image();
pugImg.onload = function (img) {
var pug = new fabric.Image(pugImg, {
width: 350,
height: 100,
left: 250,
top: 70,
scaleX: .25,
scaleY: .25
id: 'testimg'
});
canvas.add(pug);
};
pugImg.src = imgURL;
});
我想如果我检查画布上是否存在 pug 对象,我可以将其删除,并且仅在不存在 pug 对象时添加一个新对象。
所以我尝试了这个:
cirkel1.on('mousedown', ()=>{
var imgURL = 'https://printzelf.nl/new/assets/images/logo_gewoon.png';
var pugImg = new Image();
pugImg.onload = function (img) {
var pug = new fabric.Image(pugImg, {
width: 350,
height: 100,
left: 250,
top: 70,
scaleX: .25,
scaleY: .25
id: 'testimg'
});
canvas.add(pug);
if(pug > 0){
console.log('pug exists');
}else{
console.log('pug doesnt exist');
}
};
pugImg.src = imgURL;
});
但这总是转到这部分console.log('pug doesnt exist');,即使画布上有多个哈巴狗。
那么检查这个的正确方法是什么?
完整代码:
【问题讨论】:
标签: javascript canvas html5-canvas fabricjs