我的网站上有很多繁重的前端功能,我正在使用加载gif来缓解我的加载麻烦。然而我注意到,在Safari中,特别是(因为它通常较慢的浏览器)加载gif的背景加载然后差不多八秒钟,gif加载,此时页面的其余部分完成加载并且该网站出现。这似乎是对整个效果的浪费。
有没有办法让这个gif更早加载,以便在加载页面的其余部分之前播放gif?
我的网站:http://bmgz.rtcgraphics.com/
谢谢!
HTML:
<html class="js">
<body>
<div id="preloader-gif"></div>
<!-- the rest of the website -->
</body>
</html>
CSS:
.js div#preloader-gif {
position: fixed;
left: 0;
top: 0;
z-index: 999;
width: 100%;
height: 100%;
overflow: visible;
background: #333 url(img/ajax-loader.gif) no-repeat center center;
}
JS:
$(document).ready(function(){
$(window).load(function(){
$('#preloader-gif').fadeOut('slow',function(){$(this).remove();});
});
});
答案 0 :(得分:1)
无论如何,为了讨论主题,我认为您在Safari中遇到的问题是由于您的图像是从样式表加载的。首先,浏览器找到样式表,下载并开始解析它。当发生这种情况时,html的其他部分可能已经被解析,其他资源可能已经被排队下载,然后才能到达你的gif。
因此,请尝试将装载机置于身体顶部的常规img标签中,以确保尽快装入,您甚至可以将其放在屏幕外,然后继续使用css解决方案将其置于中心位置你想要但是img-tag应该确保它尽早加载。