开发者社区> 问答> 正文

要如何检测css文件中的引用的图片已下载完成?

js中,创建一个Image对象
然后可以检测是否已完成请求

var image = new Image();
image.url = XXX.png;
image.onload(function() {
    //这里做些事
});

那css文件中的引用的图片可以检测到是否已完成请求图片的步骤呢?
例如

.page1 {
    background: url(XXX.png);
}

我要怎么样才能知道这个XXX.png是否已经完成加载了呢?
简单来说,我想在图片加载完成之前先给一个用loading页
在全部的图片(包括页面中标签和css中的引用图片)加载完成后再展示页面
应该怎样做?

展开
收起
杨冬芳 2016-06-03 11:53:43 2280 0
1 条回答
写回答
取消 提交回答
  • IT从业

    成的解决方案在这里:https://github.com/alexanderdickson/waitForImages

    简单的说,当样式应用于 DOM 对象的时候,我们可以通过 DOM.style 获取到它的值(比如 backgroundImage),然后取出其中 url() 里面的路径。一旦你得到这个路径就可以用你问题里描述的方法来检测了。

    这个插件的基本原理就是这样,只不过要解决递归向下查找的问题,然后等待所有加载完成之后再构造一个自定义事件供你捕获。另外它除了传统的 callback 形式调用以外,还为你提供了 jQuery 兼容的 promise,比较好用。

    2019-07-17 19:26:26
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
零基础CSS入门教程 立即下载
穆客带你快速定位 Node.js 内存泄露 立即下载
穆客带你快速定位Node.js内存泄露 立即下载