0

我在这个网站上有一个预加载器: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);
}
4

1 回答 1

1

问题是您hideLoader()没有正确触发。如果我在 Safari 上的控制台中输入这个;

hideLoader();

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

这里的问题是代码“为时已晚”。你必须优先考虑一件事等待另一件事。现代浏览器加载脚本的速度非常快。加载可能比要加载的函数更早。我主要获取0.0ms0.1ms加载 DOM 事件的时间。

您可以尝试将函数代码放在 jQuery 函数中,并确保尝试将函数放在就绪状态绑定(函数)之前。

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

于 2013-03-31T10:44:52.707 回答