0
ボタンをクリックしてから矩形を描くことができます。FabricJs "DrawModeボタン"で描画できない
Javascriptを:
$("#select").click(function() {
DrawingRectangle = false;
});
$("#draw").click(function() {
DrawingRectangle = true;
draw();
});
function draw() {
if (DrawingRectangle == true) {
canvas.on('mouse:down', function(o) {
var pointer = canvas.getPointer(o.e);
isDown = true;
origX = pointer.x;
origY = pointer.y;
rectangle = new fabric.Rect({
left: origX,
top: origY,
fill: 'transparent',
stroke: 'red',
strokeWidth: 3,
});
canvas.add(rectangle);
});
canvas.on('mouse:move', function(o) {
if (!isDown) return;
var pointer = canvas.getPointer(o.e);
if (origX > pointer.x) {
rectangle.set({
left: Math.abs(pointer.x)
});
}
if (origY > pointer.y) {
rectangle.set({
top: Math.abs(pointer.y)
});
}
rectangle.set({
width: Math.abs(origX - pointer.x)
});
rectangle.set({
height: Math.abs(origY - pointer.y)
});
canvas.renderAll();
});
canvas.on('mouse:up', function(o) {
isDown = false;
DrawingRectangle = false;
});
}
}
HTML:
<canvas id="paper" width="800" height="300" style="border:1px solid #ccc;position: absolute; z-index : 1"></canvas>
<li align="center"><button id="draw">Draw ROI</button></li>
<li align="center"><button id="select">Select ROI(s)</button></li>
IF文でコードが解雇されることはありませんなぜ私は知りません。 私はcanvas.off
を使用していると考えていましたが、どのように動作するのかわかりません。
私の警告があまりにも表示されないので、私はDrawingRectangleが決して真ではないと思います。
あなたはonloadイベントにしたり、クリックイベントや他からの呼び出し機能にif文を置く必要があります。 –
@ Jean-ClaudeColetteすべてのコードはonloadイベントにあります –
@ Jean-ClaudeColette私の悪い私はonloadとdocument.readyを混同しました。 –