- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的页面上有 3 个部分,其中包含许多不同尺寸的图像,我需要做的是确保这 3 个部分图像中的每一个都已完全加载,然后再继续应用任何过渡等,例如淡入淡出等部分.
我想我知道我需要做什么,但我不确定执行它。我需要创建一个延迟对象,在完成解析延迟对象时监视每个调用,然后运行 deferred.when 或 deferred.done 方法,听起来像吗这可能是对的吗?正如我所说,我只是不确定该怎么做?
我正在使用 imagesLoaded 插件,我的代码当前如下所示:
JS
$(function () {
var def1 = $.Deferred();
var def2 = $.Deferred();
var def3 = $.Deferred();
var def = $.when(def1, def2, def3);
$('.set1').imagesLoaded(function () {
console.log('Set 1 ready');
def1.resolve();
});
$('.set2').imagesLoaded(function () {
console.log('Set 2 ready');
def2.resolve();
});
$('.set3').imagesLoaded(function () {
console.log('Set 3 ready');
def3.resolve();
});
def.done(function () {
console.log('ready');
});
});
JS Fiddle http://jsfiddle.net/dkzrv/1/
最佳答案
$(function () {
function loadImages(selector) {
var dfd = $.Deferred();
/*
...do work to load images...
if success, dfd.resolve()/dfd.resolveWith(...)
if failure, dfd.reject()/dfd.rejectWith(...)
to indicate progress, dfd.notify()/dfd.notifyWith(...)
*/
$(selector).imagesLoaded(function () {
var setResult = "dummy data";
dfd.resolve(setResult);
});
/*
If you return the dfd directly,
it can be canceled via .reject() from the outside.
To allow outside canceling just return the dfd.
*/
return dfd.promise();
}
//Run multiple deferreds in parallel and wait for all to complete with $.when
$.when(loadImages('.set1'), loadImages('.set2'), loadImages('.set3'))
.done(function(set1Result, set2Result, set3Result) {
//All resolved
})
.fail(function() {
//One or more failed
//If you want to know which one,
//you have to save a reference to each of
//the loadImages calls and determine through
//their individual .failure()'s
});
});
$.when()
函数是一个实用程序,它将多个延迟封装成一个。因为它返回自己的延迟对象,所以您可以调用 .done()
和 fail()
并将其视为任何其他延迟对象。
供将来引用,.then()
通常用于控制串行任务,$.when()
用于控制并行任务。
在 loadImages()
函数中,您可以将 loadImages
插件包装在 deferred 中,以使其更加通用。
关于javascript - 在一页上进行多个 imageLoaded 调用,并确保每个调用都已完成,然后再继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18322672/
在我的应用程序中,我有一个包含一些项目的 ListView 。每个项目都有一个从远程 url 下载的 img。 我使用 ImageLoader 库将每个图像加载到我的应用中。 我的 ListView
This question already has answers here: What is a NullPointerException, and how do I fix it? (12个答案)
我正在使用 ImageLoader 从互联网加载图像。但我收到错误消息“E ImageLoader:连接超时”,跟踪是: 05-29 16:39:02.994 9988 10417 E ImageLo
在尝试加载以下 Activity 时,我遇到了 NullPoint 异常,我尝试解决这些问题,但我的尝试没有成功。 简而言之,有两个 Activity - 一个 Activity 填充数组列表,单击数
我正在使用 ImageLoader 在我的 ImageView 中显示图像。但它显示缓存的图像并显示旧图像。如何清除缓存?任何帮助将不胜感激... import java.io.File; impor
在我的 getView 中(对于我的适配器)我做 ImageView malImage = (ImageView)vi.findViewById(R.id.animelist_malimg);
我从 facebook api 发布了图片,我试图在我的应用程序中显示它们。但是在使用 imageloader 类时,尽管我将 wrap_content 保留在我的 ImageView 中,但图像的尺
我对 Universal Image Loader 库中的 DisplayImage 函数有疑问。如果我有一个像“www.myexample.com/image.jpg”这样的 url,然后说: Di
当我 try catch 图像或将图像从图库上传到 firebase 时出现此错误。我知道之前有人问过这个问题,但是我尝试了所有可能的解决方案。 这是 list 文件: logcat
我有一个带有适配器的 listView,它通过 ImageLoader 类从 URL 加载图像。问题是,直到列表项滚出屏幕后,屏幕上的图像才会显示/加载。 基本上,显示了 listView,但在您向下
我正在使用 ImageLoader 类从 url 加载图像并将其显示在列表显示。但是这个 ImageLoader 正在模拟器上加载图像,当我在没有加载任何图像的真实设备上运行我的应用程序。(只是显示默
以下是使用 volley 将图像从数据库检索到 View 页面的代码的一部分。我怎样才能将七张图片加载到 ImageView (加载所有图像位置)。如果我在“加载所有图像”位置独立输入任何图片,例如图
我正在使用 Novoda ImageLoader (https://github.com/novoda/ImageLoader),当我在 CursorAdapter 中使用这个加载器时,一切都很好。但
我在使用库时遇到了这个问题 我的应用类 ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplic
我正在尝试使用 ImageLoader 显示带有外部图像链接的通知,但没有任何运气。 Logcat 不显示任何错误,也根本不显示通知。 这是我的代码: void shownot() { mNo
我正在使用 UniversalImageLoader 加载图像。但我面临的问题是同一图像被多次加载。下面是日志输出。 日志: 11-11 11:10:21.342 26932-26932/com.ex
我正在尝试使用 ImageAdapter 和 ImageLoader 将图片库显示为 GridView。不过,所有肖像图像都旋转了 +-90 度。我知道 getExifOrientation 代码来检
你好帮助者:)我已经实现了在一个 wordpress 页面上显示砖石流体网格中的图像,但是我在调用 HTML5 中的视频时遇到了问题(仅带有标签:)。问题是图像与 width: 50%; 完美配合
我在 Marsmallow 操作系统中遇到了小问题。我可以使用安卓6.0。但我看不到ImageView。例如:首先,我尝试 5.0 操作系统,一切正常。然后我可以使用6.0但我看不到Imageview
如果图像已经缓存,我不想下载它们。我正在使用 NOSTRA 的 ImageLoader 库。请告诉我是否有办法做到这一点。以下是代码:- DisplayImageOptions options
我是一名优秀的程序员,十分优秀!