html - 不使用 img 元素的 css 背景图像回调

标签 html css callback background-image

我正在研究各种非常低功率的设备,出于各种原因我想切换到背景图像,而不是使用实际的 img 标签。似乎阻止我这样做的一个问题是没有与背景图像加载相关的回调,这很关键(因为这些设备上会发生故障)。

我看到很多建议使用图像标记的回调来检查资源然后删除资源,但对我来说可能不够稳健。例如,如果平台不支持缓存,则可能会为同一图像创建两个网络请求/下载。此外,图像总是有可能成功加载图像,但背景图像加载失败。

我是否可以使用 addEventListener 将单独的回调附加到诸如 div 之类的东西,以监视其基于网络的 CSS 请求?或者,如果不是回调,至少要验证背景图像是否确实已加载?

<style>
.class {
  background-image: url('./static/example.jpg');
}
</style>
<div class="foo"></div>

function onSuccess() { // this called if ./static/example.jpg loaded
}

function onFailure() { // this called if ./static/example.jpg failed to load
}

最佳答案

是否可以使用 JS 加载图像,如果加载了,则将类应用于元素。

是这样的:

var img = new Image();
img.onload = function() {
    // add class
}
img.src = '/images/myImage.jpg';

想法是让 JS 调用图像,然后一旦浏览器在缓存中拥有它,然后应用该类,它应该加载。

关于html - 不使用 img 元素的 css 背景图像回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21172534/

相关文章:

html - 屏幕和移动设备上的 iframe 宽度

javascript - 如何在不同的 HTML 元素上重用 JS 函数

ajax - JSON-P 回调函数应该接受字符串吗?

html - 当浏览器最小化时, 'li' 中的最后 'ul' 个元素正在关闭

css - 如何使用 css 设置传单搜索框位置(leaflet.extra 包)

json - FineUploader OnComplete 方法未触发

javascript - $.getJSON 返回值到变量

html - 左对齐中心对齐 flex 盒的最后一行

html - 如何将按钮与相邻文本区域的底部对齐?

javascript - Canvas 使用字母而不是形状?