Подтвердить что ты не робот

Как определить тип выбранного объекта?

Я помещаю текст, изображение и фигуры на холст, используя Fabric.js. Я сделал три разные панели редактирования для всех трех. Когда пользователь выбирает текст, я хочу показать текстовую панель. как мудрый для изображения и форм.

Как определить тип выбранного объекта?

4b9b3361

Ответ 1

canvas.getActiveObject().get('type'), как сказал симми симми, правильный. Вы также можете прослушивать события:

function onObjectSelected(e) {
  console.log(e.target.get('type'));
}
canvas.on('object:selected', onObjectSelected);

Ответ 2

Я решил эту проблему, используя следующий код:

  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
        {

        }


        });

Ответ 3

Попробуйте 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);

Ответ 4

В 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);

Ответ 5

Киенц сказал, что правильно, вы можете получить тип объекта, как это mycanvas.getActiveObject().get('type')

mycanvas - идентификатор canvas

function onObjectSelected(e) { console.log(e.target.get('type')); } mycanvas.on('object:selected', onObjectSelected);