jQuery Preloader没有消失

时间:2013-03-29 15:02:30

标签: jquery preloader preload

我在这个网站上有一个预加载器:http://exit.santamartastudio.es/有时它会隐藏预加载器,有些则不会。我已经找到了但不知道为什么会失败。

更新(这是代码):

$(document).ready(function(){
  setLoader();
  Here I load the rest of jquery
});



$(window).load(function () {
  hideloader();
});

功能:

// Setloader
function setLoader() {
  disable_scroll();
  $('body').css('overflow', 'hidden');
}
// Hideloader
function hideLoader() {
  var windowWidth = $(window).width(); //retrieve current window width

  $('#loader img').animate({
    left: '+=' + ((windowWidth/2) + 100)
  }, 1000, 'easeOutExpo');

  $('#loader span').animate({
    left: '-=' + ((windowWidth/2) + 100)
  }, 1000, 'easeOutExpo');
  setTimeout(function () {
    $('#loader').fadeOut(800, 'linear', function(){
      enable_scroll();
      $('body').css('overflow', 'visible');
      $(this).hide();
    });
  }, 200);
}

1 个答案:

答案 0 :(得分:1)

问题是您的hideLoader()无法正确触发。如果我在Safari上输入我的控制台;

hideLoader();

..一切都刚刚发生,这意味着实际实施没有任何问题。

这里的问题是代码“太晚了”。你必须优先考虑一件事情等待另一件事。现代浏览器非常快速地加载脚本。可能是负载甚至比加载功能更早。我主要在DOM事件上获得0.0ms0.1ms加载时间。

您可以尝试将函数代码放在jQuery函数中,并确保尝试将函数放在ready-state绑定(函数)之前。

似乎没有其他解释而不是太快的触发准备状态。尝试使用页面中的大图进行测试,以便您的就绪状态需要更长的时间,在这种情况下您可能永远不会得到错误,因为就绪状态需要更长的时间才能完成。