”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何可靠地检查背景图像是否已加载?

如何可靠地检查背景图像是否已加载?

发布于2024-11-24
浏览:676

How to Reliably Check if a Background Image Has Loaded?

使用背景图像加载器

您正在尝试通过在 body 标记上设置背景图像来检查背景图像是否已加载然后使用 load() 函数。然而,这种方法对于背景图像不起作用。

要真正确保背景图像已完全加载,您可以使用不同的技术:

$('<img/>').attr('src', 'http://picture.de/image.png').on('load', function() {
   $(this).remove(); // prevent memory leaks
   $('body').css('background-image', 'url(http://picture.de/image.png)');
});

此方法在内存中创建一个新图像并为其附加一个加载事件侦听器。图像加载完成后,将触发 load 事件,并在 body 标记上设置背景图像。

在普通 JavaScript 中,这可以实现为:

var src = 'http://picture.de/image.png';
var image = new Image();
image.addEventListener('load', function() {
   body.style.backgroundImage = 'url('   src   ')';
});
image.src = src;

您还可以创建一个抽象函数来处理图像加载并返回一个承诺:

function load(src) {
    return new Promise((resolve, reject) => {
        const image = new Image();
        image.addEventListener('load', resolve);
        image.addEventListener('error', reject);
        image.src = src;
    });
}

const image = 'http://placekitten.com/200/300';
load(image).then(() => {
   body.style.backgroundImage = `url(${image})`;
});

此方法允许您可靠地检查背景图像加载是否完成,并确保仅在图像完全加载后才执行代码。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3