2010-04-27 73 views
4

我已经创建了一个使用Jquery UI进度条加载进度条的网站。此进度条显示脚本加载的状态。样本是

$.getScript('_int/ajax.js',function() { 
    $("#progressinfo").html("Loading Complete ..."); 
    $("#progressbar").progressbar({ value: 100 }); 
}); 

这个进度条是#indexloader这是阻止网站加载的背后,它的CSS是:进度条达到100%

#indexloader { 
    z-index:100; 
    position:fixed; 
    top:0; 
    left:0; 
    background:#FFF; 
    width:100%;height:100%; 
} 

后,我想隐藏和删除#indexloader因为我用

$("#indexloader").fadeOut("slow",function() { $("#indexloader").remove(); }); 

但问题是,虽然脚本已加载,页面未完全加载,我看到IM年龄和其他事情仍然在加载。

因此衰落和删除我要检查是否$(window).load()已完成#indexloader或不

有没有一种方法来检查这之前?

回答

9

添加属性到window

$(window).load(function() { 
    window.loaded = true; 
}); 

然后在您隐藏#indexloader之前检查window.loaded

+0

好吧,现在我明白了,谢谢兄弟,你摇滚 – Starx 2010-04-27 01:23:36

+0

完美无瑕!谢谢! – 2012-08-29 18:12:21

1

是淡出对window.load选项装载机?似乎是最简单的方法做你想要的:

$(window).load(function() { 
    $("#indexloader").fadeOut("slow",function() { $("#indexloader").remove(); }); 
}); 

另外,在window.load设置一个变量,像这样:

var loaded = false; 
$(window).load(function() { loaded = true; }); 

然后改变你的淡出代码寻找它:

function fadeIndex() { 
    $("#indexloader").fadeOut("slow",function() { $("#indexloader").remove(); }); 
} 
if (loaded) fadeIndex(); //aleady loaded 
else $(window).load(fadeIndex); //fade when we do load 
+0

你们两个人在同一时间*完全*地回答。我准备了几乎完整的答案,实际上大约0.5秒太慢了。做的好各位。瞬间!和两者都+1。 – karim79 2010-04-27 00:25:05

+0

@ karim - 和蔼!我今天很slowwww,自己也打了10次左右 – 2010-04-27 00:26:37

+0

你是对的, $(window).load(function(){ $(“#indexloader”)。fadeOut(“slow”,function (){$(“#indexloader”)。remove();}); }); 会更容易些,但我想我的褪色进度条达到100后,在这种情况下,$(“#indexloader”)开始褪色进度达到100 – Starx 2010-04-27 01:21:30

相关问题