Javascript ('load')函数在Firefox上可用,但在Safari/iOS或Chrome上不可用?

Javascript ('load')函数在Firefox上可用,但在Safari/iOS或Chrome上不可用?,javascript,jquery,function,google-chrome,safari,Javascript,Jquery,Function,Google Chrome,Safari,我不确定原因,但在Safari/iOS和Chrome浏览器中,这个特定功能似乎都不起作用: $(window).on('load',function(){ $('#preloader').fadeOut(800).hide(); $('#preload').fadeIn(800).css('display', 'initial').show(); }); 我当前已将脚本插入标记之前。有人能解释为什么会发生这种情况吗 更新: $window.on'load',函数{ $预加载程序.fa

我不确定原因,但在Safari/iOS和Chrome浏览器中,这个特定功能似乎都不起作用:

$(window).on('load',function(){
  $('#preloader').fadeOut(800).hide();
  $('#preload').fadeIn(800).css('display', 'initial').show();
});
我当前已将脚本插入标记之前。有人能解释为什么会发生这种情况吗

更新:

$window.on'load',函数{ $预加载程序.fadeout 800.hide; $'preload'.fadeIn800.css'display','initial'.show; }; .预载包装{ 宽度:100%; 高度:自动; 显示:块; 保证金:0自动; 文本对齐:居中; 线高:0; } 预紧器{ 利润率:40px0; 填充:0; 边界:0; 宽度:45px; 高度:45px; } 预载{ 显示:无; } img{ 宽度:100%; 高度:自动; }
也许这些显示和隐藏元素的多种方法是原因之一。我没有任何可以确定的IOS设备

如果您希望延迟,并且一个接一个地淡出,请尝试以下方法:

$(window).on('load',function(){
  setTimeout(function(){
    $('#preloader').fadeOut(800, function(){
      $('#preload').fadeIn(800);  // FadeIn after fadeOut complete.
    });
  },800);  // delay from the load event and the fadeOut.
});

为什么使用淡出时使用隐藏,使用淡出时使用显示。但是,请看这里:

$document.readyfunction{ $preload.fadeout 800,功能{ $preload.fadeIn800 }; }; 预载{ 显示:无; } 预载物含量 预加载内容
如果改用$document.ready,是否有效?@Barmar否。除非我使用$window.on'load',函数,否则此预加载功能不会激活;但即便如此,尽管它在Firefox上也能工作,但fadeOut和fadeIn调用似乎在Safari或Chrome中无法执行……我不明白当你在同一个元素上同时拥有fadeOut和hide时,你想做什么。fadeOut的意思是慢慢隐藏,但立即隐藏。fadeIn、css“display”、“initial”和“show all”显示元素。在Chrome on OS X上对我有效。我认为加载事件发生在加载DOMContentLoaded之后。那么,为什么在早期事件中效果更好呢?fadeIn应该处于预加载状态,而不是预加载状态。@csskevin,谢谢。这是与我所寻找的最接近的解决方案。我必须稍微处理一下,但这似乎是一个更好的方法。