Ответ 1
canvas.getActiveObject().get('type')
, как сказал симми симми, правильный. Вы также можете прослушивать события:
function onObjectSelected(e) {
console.log(e.target.get('type'));
}
canvas.on('object:selected', onObjectSelected);
Я помещаю текст, изображение и фигуры на холст, используя Fabric.js. Я сделал три разные панели редактирования для всех трех. Когда пользователь выбирает текст, я хочу показать текстовую панель. как мудрый для изображения и форм.
Как определить тип выбранного объекта?
canvas.getActiveObject().get('type')
, как сказал симми симми, правильный. Вы также можете прослушивать события:
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);
В fabricjs 3.4, чтобы получить тип объекта, просто используйте:
var objType = canvas.getActiveObject().type;
Для объекта IText вышеприведенное вернет: i-text
На изображении он вернет: изображение
function onObjectSelected() {
// check if type is a property of active element
var objType = (canvas.getActiveObject().type ? canvas.getActiveObject().type : "");
// your code
}
canvas.on('object:selected', onObjectSelected);
Киенц сказал, что правильно, вы можете получить тип объекта, как это
mycanvas.getActiveObject().get('type')
mycanvas - идентификатор canvas
function onObjectSelected(e) {
console.log(e.target.get('type'));
}
mycanvas.on('object:selected', onObjectSelected);