【发布时间】:2020-07-23 14:52:07
【问题描述】:
我正在尝试在 fabric.js 中创建一条直线,该直线将使用输入复选框切换到直线模式。问题是,即使我取消选中它,直线也不会停止。取消勾选后如何让它停止放线?
HTML
<input type="checkbox" id="drawmode">
<canvas id="c" width="500" height="300"></canvas>
JavaScript
var canvas = new fabric.Canvas('c', { selection: false });
var line;
var isDrawing;
document.getElementById('drawmode').addEventListener("click", function(){
if(this.checked == true){
canvas.on('mouse:down', function (o) {
isDrawing = true;
var pointer = canvas.getPointer(o.e);
var points = [pointer.x, pointer.y, pointer.x, pointer.y];
line = new fabric.Line(points, {
strokeWidth: 3,
stroke: 'black'
});
canvas.add(line);
});
canvas.on('mouse:move', function (o) {
if (isDrawing) {
var pointer = canvas.getPointer(o.e);
line.set({ x2: pointer.x, y2: pointer.y });
canvas.renderAll();
}
});
canvas.on('mouse:up', function (o) {
isDrawing = false;
});
}
else if(this.checked == false)
{
// What should I put here to break out of the line drawing mode??
}
【问题讨论】:
标签: javascript html fabricjs