Add Delete button on element in Canvas Fabric JS

后端 未结 4 1729
粉色の甜心
粉色の甜心 2021-01-31 23:32

Hi I want to add delete button in element using FabricJS. I Have an example:

I try adding this part of code but when I resize image the delete button don\'t sta

4条回答
  •  暗喜
    暗喜 (楼主)
    2021-02-01 00:14

    target.oCoords.mt is middle-top corner.

    Use the top-right corner instead: e.target.oCoords.tr

        var canvas = new fabric.Canvas('canvas');
    var HideControls = {
                'tl':true,
                'tr':false,
                'bl':true,
                'br':true,
                'ml':true,
                'mt':true,
                'mr':true,
                'mb':true,
                'mtr':true
            };
    fabric.Image.fromURL('http://serio.piiym.net/CVBla/txtboard/thumb/1260285874089s.jpg', function (img) {
        img.top = 60;
        img.left = 30;
        img.setControlsVisibility(HideControls);
        canvas.add(img);
    });
    
    canvas.renderAll();
    
    function addDeleteBtn(x, y){
        $(".deleteBtn").remove(); 
        var btnLeft = x-10;
        var btnTop = y-10;
        var deleteBtn = '';
        $(".canvas-container").append(deleteBtn);
    }
    
    canvas.on('object:selected',function(e){
            addDeleteBtn(e.target.oCoords.tr.x, e.target.oCoords.tr.y);
    });
    
    canvas.on('mouse:down',function(e){
        if(!canvas.getActiveObject())
        {
            $(".deleteBtn").remove(); 
        }
    });
    
    canvas.on('object:modified',function(e){
        addDeleteBtn(e.target.oCoords.tr.x, e.target.oCoords.tr.y);
    });
    
    canvas.on('object:scaling',function(e){
        $(".deleteBtn").remove(); 
    });
    canvas.on('object:moving',function(e){
        $(".deleteBtn").remove(); 
    });
    canvas.on('object:rotating',function(e){
        $(".deleteBtn").remove(); 
    });
    $(document).on('click',".deleteBtn",function(){
        if(canvas.getActiveObject())
        {
            canvas.remove(canvas.getActiveObject());
            $(".deleteBtn").remove();
        }
    });
    

提交回复
热议问题