我在这个网站上有一个预加载器: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);
}
答案 0 :(得分:1)
问题是您的hideLoader()
无法正确触发。如果我在Safari上输入我的控制台;
hideLoader();
..一切都刚刚发生,这意味着实际实施没有任何问题。
这里的问题是代码“太晚了”。你必须优先考虑一件事情等待另一件事。现代浏览器非常快速地加载脚本。可能是负载甚至比加载功能更早。我主要在DOM事件上获得0.0ms
和0.1ms
加载时间。
您可以尝试将函数代码放在jQuery函数中,并确保尝试将函数放在ready-state绑定(函数)之前。
似乎没有其他解释而不是太快的触发准备状态。尝试使用页面中的大图进行测试,以便您的就绪状态需要更长的时间,在这种情况下您可能永远不会得到错误,因为就绪状态需要更长的时间才能完成。