javascript - 如何在 Fabric.js 中创建图像加载动画?

标签 javascript image events fabricjs

我使用 Image.fromURL 将图像加载到我的 Fabric.js Canvas 中,如下所示:

fabric.Image.fromURL(url, function(img) {
    //blah blah blah
    canvas.add(img).setActiveObject(img);
});

它可以工作,但有些图像需要几秒钟才能加载,并且用户必须坐在那里没有任何反馈。我想放入加载动画,但我找不到任何可以用来告诉我图像何时完成加载并准备好显示的事件。

有人有解决办法吗?谢谢!

最佳答案

这应该做:

function createCanvasImage(callback) {
    // Placeholder-Code to set the loading-image spinning
        
    // Now load the image with AJAX
    var sauce = "http://..."
    var request = $.ajax({
        url: sauce,
        crossDomain: true,
        type: "HEAD",
        cache: true,
    });
        
    // If AJAX loaded your image, the browser will have it in cache,
    // so now we can add it
    request.done(function () {
        fabric.Image.fromURL(sauce, function(img) {
            // blah blah blah
            canvas.add(img).setActiveObject(img);
        });
        
        // Placeholder-Code to stop the loading-image
        callback();
    });
}
    
createCanvasImage(alert.bind(undefined, "Image loading done!"));

关于javascript - 如何在 Fabric.js 中创建图像加载动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31530738/

相关文章:

javascript - 应用时 JavaScript 对象错误中的 jQuery 事件

javascript - ionic 导入模块

javascript - 通过设置SRC数据Javascript平滑地淡入图像RGB

javascript - 以编程方式调用 onclick 属性并与事件参数对话

python - 将图像绘制到 tkinter Canvas

html - <picture> <source> 相对于 <picture> 的宽度

c++ - 使用 union hack c++ 进行事件处理

javascript - 使用 css 和 javascript 的图像 slider

javascript - 从 ExtJS 网格面板获取所有行

javascript - 在两点之间画一条光滑的弧线()