我正在制作一个基于jQuery的主页,其中包含5个或更多隐藏的div,每个div中都包含了几张背景css图片。
问题在于,浏览器直到显示父层的可见性时才将css图片加载到DOM中,导致当该层变为可见时图片缓慢加载。
我已经考虑过的解决方法:
- CSS精灵(要重新设计太麻烦了,并且在显示/隐藏div时并不会真正起到作用)
- 这个jQuery插件可以自动加载CSS背景图片(但据许多其他人报告,它对我并没有起作用)。
通过js预加载图片:
$(function() {
function preloadImg(image) {
var img = new Image();
img.src = image;
}
preloadImg('/images/home/search_bg_selected.png');
});
这个解决方案似乎会将图片加载到DOM中两次……一次是在js加载时,另一次是在加载它的div层变为可见时……因此它会发出两个HTTP请求,因此无法正常工作。
还有其他我漏掉的解决方案吗?