FabricJS

【JavaScript】【Fabric.js】選択した矩形を削除する

MAX

JavaScriptのキャンバスを操作するライブラリであるFabric.jsを使用して、矩形をマウスで選択して削除する。

スポンサーリンク

HTML

削除ボタンを押下したら削除する。

1hmtl
2<button type="button" id="deleteBtn" >削除</button>
3<canvas id="canvas"></canvas>

キャンバスの設定

キャンバスを設定する。

1/*
2 * 画面ロード時に実行される関数
3 */
4function load(){
5    canvas = new fabric.Canvas("canvas");
6
7    //適当にキャンバスのサイズ設定
8    canvas.setWidth(400);
9    canvas.setHeight(400);
10}

選択したオブジェクトを削除する

キャンバスに描画したオブジェクトを選択し、「削除」ボタンを押下するとオブジェクトを削除するようにする。

1function deleteObj(){
2    //選択されているオブジェクトを削除する。
3    let activeObjects = canvas.getActiveObjects();
4
5    if (activeObjects != null) {
6        if (confirm('選択された箇所を全て削除しますか?')) {
7            activeObjects.forEach(obj => {
8
9                //対象オブジェクトを削除
10                canvas.remove(obj);
11
12                //矩形のIDとcanvas.item紐づけ用配列も削除する。
13                let arrIndex = arrayRect.indexOf(obj.id);
14                arrayRect.splice(arrIndex, 1);
15            });
16        }
17    } else {
18        alert("オブジェクトが選択されていません。");
19    }
20}
21
22deleteBtn.addEventListener('click', deleteObj,false);

複数のオブジェクトを選択した場合、全てのオブジェクトが削除される。

オブジェクトにIDを付与してcanvas.itemのインデックスと紐づけていた場合、紐づけ用の配列からも、削除したオブジェクトの要素は削除しておく。

キャンバスのオブジェクトIDとcanvas.itemのインデックス紐づけは以下の記事を参照。

あわせて読みたい
【JavaScript】Fabric.jsで矩形にオブジェクトIDをつける
【JavaScript】Fabric.jsで矩形にオブジェクトIDをつける
スポンサーリンク
ABOUT ME
MAX
MAX
ITエンジニア、データサイエンティスト
新卒でSIerに入社し、フリーランスになってWEB系へ転向。
その後AIの世界へ足を踏み入れ、正社員に戻る。 テーブルデータの分析がメイン。
スポンサーリンク
記事URLをコピーしました