【问题标题】:Show all images only after their complete load [duplicate]仅在完成加载后显示所有图像[重复]
【发布时间】:2011-09-07 09:03:29
【问题描述】:

<div id="all-images">
    <img src="images/1.jpg">
    <img src="images/2.jpg">
    <img src="images/3.jpg">
    <img src="images/4.jpg">
    <img src="images/5.jpg">
    <img src="images/6.jpg">
</div>

我只想在该 id 内的所有图像都完全加载(Jquery)时才显示 id="all-images" 的所有图像。

在加载所有图像之前,此部分显示“正在加载..”文本

【问题讨论】:

  • @JMax - 据我所知,这不是骗子。
  • @karim79:是的,我已经看到你的答案了,我读的太快了

标签: jquery


【解决方案1】:

假设您的 div 是预先隐藏的:

$("#loadingDiv").show();
var nImages = $("#all-images").length;
var loadCounter = 0;
//binds onload event listner to images
$("#all-images img").on("load", function() {
    loadCounter++;
    if(nImages == loadCounter) {
        $(this).parent().show();
        $("#loadingDiv").hide();
    }
}).each(function() {

    // attempt to defeat cases where load event does not fire
    // on cached images
    if(this.complete) $(this).trigger("load");
});

【讨论】:

  • 我认为这解决了我的问题,谢谢
  • 真的很有用...谢谢
【解决方案2】:

http://api.jquery.com/load-event/

尝试将加载事件处理程序附加到您的“所有图像”div。如果要信任 API,则在加载所有子图像时将触发该事件。

所以我会有某种 document.onready 处理程序,它将隐藏您的图像并插入“正在加载...”文本,然后您的加载事件处理程序将显示您的图像并删除加载文本。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2015-11-11
    • 2023-04-10
    • 1970-01-01
    • 2018-04-23
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    • 2012-12-31
    相关资源
    最近更新 更多