在jQuery中执行此操作时:
$(function() {
alert("DOM is loaded, but images not necessarily all loaded");
});
Run Code Online (Sandbox Code Playgroud)
它等待DOM加载并执行您的代码.如果未加载所有图像,则它仍然执行代码.如果我们正在初始化任何DOM内容,例如显示或隐藏元素或附加事件,这显然是我们想要的.
让我们说虽然我想要一些动画但我不希望它运行直到所有图像都被加载.jQuery中是否有正式的方法来执行此操作?
我有最好的方法就是使用<body onload="finished()">,但除非必须这样做,否则我真的不想这样做.
注意:Internet Explorer 中的jQuery 1.3.1中存在一个错误,它实际上会在执行内部代码之前等待加载所有图像$function() { }.因此,如果您正在使用该平台,您将获得我正在寻找的行为,而不是上述正确的行为.
假设我们有一张图片幻灯片.这些图片的缩略图显示在div包装器中,带有一个滑块(我用Jquery创建),每个图像都包含在<li>一个CSS背景集中,当然代表图像.我选择使用背景图像作为布局问题,因为它们的大小和宽高比都不同.
图像来自数据库并动态创建.
我想做的是:
在每个上显示"加载"消息<li>并等待,直到后台(图像)加载到缓存中,然后用fadeIn显示它.他们只有我能想到的方式(不是因为我不能确定如何以及它是否可行)是:
<li>同时显示"加载"消息除了可行的事情,这意味着他们将按顺序加载,所以如果由于某种原因不会加载脚本将永远不会继续!
我已经看到一些使用JS加载图像的网站只有在浏览器可见的情况下加载图像时,这可能与我正在寻找的情况相同,因为我使用的是滚动条,只有部分图像显示在一旦页面加载