在 Fabric.js 中使用复选框创建对象 hidden/visible

Make object hidden/visible with checkbox in Fabric.js

如何通过复选框在 Canvas 中创建一个 visible/hidden 对象?

<input type="checkbox" id="visible" name="visible" checked> Visible
<canvas id="vertical" class="banner-design" height="600" width="500" style="border: 1px solid #000000;"></canvas>
canvas.add(new fabric.Circle({ radius: 30, fill: '#f55', top: 100, left: 100 }));
canvas.selectionColor = 'rgba(0,255,0,0.3)';
canvas.selectionBorderColor = 'red';
canvas.selectionLineWidth = 5;
this.__canvases.push(canvas);

Codepen 演示:https://codepen.io/geen21/pen/LYRXLqx

为此,将事件侦听器附加到复选框的 change 事件,并使用它来更新 Circle 对象的 visible 属性。

var canvas = new fabric.Canvas("vertical", {
  selectionColor: 'rgba(0,255,0,0.3)',
  selectionBorderColor: 'red',
  selectionLineWidth: 5
});

let circle = new fabric.Circle({
  radius: 30,
  fill: "#f55",
  top: 100,
  left: 100
});
canvas.add(circle);

//this.__canvases.push(canvas);

document.querySelector('#visible').addEventListener('change', e => {
  circle.visible = e.target.checked;
  canvas.renderAll();
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/4.3.0/fabric.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<input type="checkbox" id="visible" name="visible" checked> Visible
<canvas id="vertical" class="banner-design" height="600" width="500" style="border: 1px solid #000000;"></canvas>