Fabric.js を使用してキャンバスにテキスト、画像、図形を配置しています。3 つすべてに対して 3 つの異なる編集パネルを作成しました。ユーザーがテキストを選択すると、テキストパネルを表示したい。画像と形状についても同様です。
選択したオブジェクトのタイプを識別する方法は?
Fabric.js を使用してキャンバスにテキスト、画像、図形を配置しています。3 つすべてに対して 3 つの異なる編集パネルを作成しました。ユーザーがテキストを選択すると、テキストパネルを表示したい。画像と形状についても同様です。
選択したオブジェクトのタイプを識別する方法は?
canvas.getActiveObject().get('type')
simmi simmiが言ったように正しいです。イベントを聞くこともできます。
function onObjectSelected(e) {
console.log(e.target.get('type'));
}
canvas.on('object:selected', onObjectSelected);
次のコードを使用してこの問題を解決しました::
if(canvas.getActiveObject().get('type')==="text")
{
//Display text panel
console.log('text panel Displayed');
$("#Image_left_panel").css("display", "none");
$("#shape_left_panel").css("display", "none");
//$("#left_panel").css("display", "block");
}
else if(canvas.getActiveObject().get('type')==="Image")
{
//Display Image Panel
console.log('Image Panel Displayed');
$("#Image_left_panel").css("display", "block");
$("#shape_left_panel").css("display", "none");
$("#left_panel").css("display", "none");
}
else
{
}
});
試す isType()
選択したオブジェクトを取得するサンプル関数
function onObjectSelected(o){
//activeObject = canvas.getActiveObject()
activeObject = o.target;
if(activeObject.isType('text')){
//display text logic
}
else if(activeObject.isType('image')){
//display image
}
else if( activeObject.isType('xyz')){
//display shape logic
}
}
canvas.on('object:selected', onObjectSelected);