为waitForImages添加超时

时间:2015-04-16 15:09:08

标签: jquery timeout waitforimages

我正在尝试创建一个等待所有图像加载的加载页面。这是一个很棒的插件,但我想知道是否有办法为它添加超时,这样如果加载速度非常快,加载页面就不会闪现在你身上......

这是我写的,但似乎没有用。因此,如果所有图像都已加载并且在3秒之后,则删除加载页面。如果有人有任何建议,将不胜感激!谢谢!

var timeout = false;

setTimeout(function() {
    timeout = true;
    console.log("TIMEOUT!");
}, 3000);

$("html").css({overflow: 'hidden' })


$('html').waitForImages({
    waitForAll: true,
    finished: function() {
       if (timeout == true) {
           $('#loading').css({display: 'none'});
           $("html").css({overflow: 'scroll' });
           $('html').unbind('touchmove');
       }
    }  

});

1 个答案:

答案 0 :(得分:1)

我会稍微修改你的代码:

var timeout = false;
var loadedimages = false;

setTimeout(function() {
    console.log("TIMEOUT!");
    if (loadedimages == true) hideloadingdiv();
    else timeout = true;

}, 3000);

$("html").css({overflow: 'hidden' })


$('html').waitForImages({
    waitForAll: true,
    finished: function() {
       if (timeout == true) {
           hideloadingdiv();
       }
       else
       {
           loadedimages = true;
       }
    }  
});

function hideloadingdiv()
{
    $('#loading').css({display: 'none'});
    $("html").css({overflow: 'scroll' });
    $('html').unbind('touchmove');
}