Javascript 在设定时间后卸下加载微调器

Javascript 在设定时间后卸下加载微调器,javascript,jquery,loading,Javascript,Jquery,Loading,我使用以下javascript加载和删除网页的微调器 $(window).load(function() { $(".sk-rotating-plane").fadeOut("slow");; setTimeout(function(){ $('body').addClass('loaded'); }, 10); }); 我想做的是更改它,以便如果页面加载时间超过5秒,则移除微调器(淡出),但如果加载时间正常,我仍然希望它正常显示(加载功能) 这可以通过javascript

我使用以下javascript加载和删除网页的微调器

$(window).load(function() {
  $(".sk-rotating-plane").fadeOut("slow");;
  setTimeout(function(){
    $('body').addClass('loaded');
  }, 10);
});
我想做的是更改它,以便如果页面加载时间超过5秒,则移除微调器(淡出),但如果加载时间正常,我仍然希望它正常显示(加载功能)

这可以通过javascript中的if语句来实现吗?

试试以下方法:

var executed = false;
var loaded = function () {
    if (!executed) {
        $(".sk-rotating-plane").fadeOut("slow");
        setTimeout(function () {
            $('body').addClass('loaded');
        }, 10);
        executed = true;
    }
};
$(window).on('load', loaded);
setTimeout(loaded, 5000);

也可以关闭两次

setTimeout(function(){
    $(".sk-rotating-plane").fadeOut("slow");
}, 5000);

$(window).on('load', function(){
    $(".sk-rotating-plane").fadeOut("slow");
    $('body').addClass('loaded');
    // more stuff
});

您可以通过使用setinterval方法定期查找,在加载时清除计时器来实现这一点

 $(window).load(function() {
    clearInterval(stimer);
    $('body').addClass('loaded');
    });
现在启动计时器以查找加载时间

var count=1
var stimer=setInterval(function(){
   if(count==5)
    {
     $(".sk-rotating-plane").fadeOut("slow"); // taking more time
    }
  count++;
  }, 1000);

在5秒钟内,您需要将setTimeout函数设置为
5000
,这样
10
与您的问题不会有太大的关系,但您的10毫秒是一个非常短的超时时间。@TracyFu,
$('body')。addClass('loaded')
只是在加载页面后更改
正文的
css
。@RayonDabre我理解这一点。我想指出的是,10毫秒并不值得设置超时。如果目的是等待动画完成,则衰减速度为600毫秒。@RayonDabre…这就是为什么我以“与问题无关”开头感谢Rayon,它工作得非常好!用较慢的资源负载测试它。对于测试微调器加载时间的任何人,此延迟代理可能会有所帮助: