Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 新Fabric JS上的拖放图像问题_Javascript_Fabricjs - Fatal编程技术网

Javascript 新Fabric JS上的拖放图像问题

Javascript 新Fabric JS上的拖放图像问题,javascript,fabricjs,Javascript,Fabricjs,在Fabric JS的最新版本中,图像放置功能未按预期工作 function handleDrop(e) { e.preventDefault(); // this / e.target is current target element. if (e.stopPropagation) { e.stopPropagation(); // stops the browser from redirecting.

在Fabric JS的最新版本中,图像放置功能未按预期工作

    function handleDrop(e) {
        e.preventDefault();
        // this / e.target is current target element.

        if (e.stopPropagation) {
            e.stopPropagation(); // stops the browser from redirecting.
        }

        var obj = document.querySelector('#draggable_items_container .drag_item.draggable_items');

        if($(obj).attr('data-type')=='image')
        {
            var image_url = $(obj).attr('data-value');
            var new_image = new fabric.Image(obj, {
                width: obj.width,
                height: obj.height,
                left: e.layerX,
                top: e.layerY,
            });
            canvas.add(new_image);
        }
        else
        {
            var text_value = $(obj).attr('data-value');
            if(text_value=='')
            {
                alert('You cant drag blank text');
                return false;
            }

            var params = {
                canvas_obj : canvas,
                text: text_value,
                left : e.layerX,
                top : e.layerY,
                font_size : 22,
                editable: false,
            };
            add_text_canvas(params);
        }
        return false;
    }
工作小提琴:

在2.0.0-beta.7中不起作用

那么如何解决这个问题呢


您需要设置图像的实际宽度和高度,然后根据需要缩放X和Y。这里更新了

什么不正常?我可以把你在Chrome v62中链接的两个fiddle中的图像拖到下面的框中。对不起,fiddle中没有更新js文件。刚刚更新过。图像并没有缩小。再一次,两者似乎仍然有效,但你们并没有解释什么是坏的。你们能解释一下应该发生什么但并没有发生吗?在旧版本中,图像正在变得合适(意味着你们可以看到整个图像),但在新版本中,整个图像并没有加载。我将包括截图。@David SS已添加。再次非常感谢。
var newImage = new fabric.Image(img, {
    width: img.naturalWidth,
    height: img.naturalHeight,
    scaleX: setImageWidth/img.naturalWidth,        
    scaleY: setImageHeight/img.naturalHeight,
    // Set the center of the new object based on the event coordinates relative
    // to the canvas container.
    left: e.layerX,
    top: e.layerY
});