【发布时间】:2020-11-17 12:00:49
【问题描述】:
我有一个功能可以在单击图像时隐藏和显示图像,但我想通过单击另一个对象来做同样的事情。
这是图片的代码
function drawCheckbox(left, top, width, height){
var imgClass = new fabric.Image.fromURL('https://image.flaticon.com/icons/svg/33/33281.svg',function(img){
img.width = width;
img.height = height;
img.left = left;
img.top = top;
img.set({
hoverCursor: 'default',
selectable: true,
opacity: 0
})
img.on('mousedown', function(e) {
if(e.target.opacity <= 0.5){
e.target.opacity = 1;
}else{
e.target.opacity = 0;
}
canvas.renderAll();
});
canvas.add(img);
canvas.renderAll();
})
}
这是矩形对象的代码:
function addRect(left, top, width, height, id) {
const o = new fabric.Rect({
width: width,
height: height,
fill: tableFill,
stroke: tableStroke,
strokeWidth: 2,
shadow: tableShadow,
originX: 'center',
originY: 'center',
centeredRotation: true,
snapAngle: 45,
selectable: true
})
const t = new fabric.IText(number.toString(), {
fontFamily: 'Calibri',
fontSize: 14,
fill: '#fff',
textAlign: 'center',
originX: 'center',
originY: 'center'
})
const g = new fabric.Group([o, t], {
left: left,
top: top,
centeredRotation: true,
snapAngle: 45,
selectable: true,
type: 'table',
id: id,
number: number
})
canvas.add(g)
number++
g.on('selected', function () {
// here I want to make de image dissapear, when the object is clicked
})
canvas.hoverCursor = 'pointer';
canvas.discardActiveObject();
canvas.renderAll();
return g;
}
我尝试在矩形内创建图像,但单击矩形时它没有做任何事情。有没有人遇到过类似的问题?
这里是代码笔:codepen.io/Zerro1/pen/PoZvmOE。
【问题讨论】:
-
能否请您为其创建代码笔?
-
这里是代码笔:codepen.io/Zerro1/pen/PoZvmOE。我需要创建另一个对象(矩形或类似的东西),当我单击矩形时,我想将复选框图像设置为不透明度 0。
-
我可以看到点击图像对象切换可见性,现在点击哪个对象来实现相同的效果?
-
在一个新对象上(我尝试在其中放置一个矩形对象,但由于某种原因它没有在 codepen 中显示)。我需要一个新的矩形,通过单击它,将一个图像设置为不透明度 0。
-
或者我怎样才能在那个 codepen 中创建 2 个单独的函数?一个用于设置不透明度,一个用于创建该图像。如果功能分开,我会知道如何从那里解决它。
标签: javascript html css fabricjs