gpt4 book ai didi

svg - 如何在 SVG 中显示占位符图像,直到加载真实图像?

转载 作者:行者123 更新时间:2023-12-03 05:09:56 28 4
gpt4 key购买 nike

我正在使用 D3.js 渲染包含光栅图像的节点的图形。

var mainscreenURL = s3_base_url + viewController + "/screenshot.jpeg";
svg.select(".mainScreen").transition().attr("height",0).remove();

svg.append("image").attr("xlink:href", mainscreenURL)
.attr("width", mainScreenW)
.attr("height", mainScreenH)
.attr("x", (w / 2) - (mainScreenW / 2))
.attr("y", (h / 2) - (mainScreenH / 2))
.attr("class", "mainScreen")
.attr("id", viewController)
});

其中一些图像非常大,因此 HTTP 请求(由浏览器隐式发出)可能会花费大量时间。我无法缓存图像,因为它们是动态生成的。

如果这是常规 HTML,我会显示一个占位符图像,然后在成功完成 HTTP get 请求后将其替换为真实图像。但由于这是 SVG,所以没有明确的请求,最终我得到了一个令人讨厌的损坏图像,然后将其替换为真实的图像。

是否有任何事件可以让我知道图像何时完全加载?

最佳答案

查看相关:Is it possible to listen image load event in SVG?

我无法使用 native addEventListener 方法,但看起来您只需设置 onload 属性(至少在 Chrome 中有效):

svg.append("image")
.attr('onload', function() {
alert('loaded');
})
.attr("xlink:href", mainscreenURL);

参见 fiddle :http://jsfiddle.net/dKxH9/

关于svg - 如何在 SVG 中显示占位符图像,直到加载真实图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18857433/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com