使用背景图像加载器
您正在尝试通过在 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