Imageオブジェクトを作成してsrcを設定することで、CSS背景画像を事前に読み込むことができます。これは、バックグラウンドでリクエストを作成し、キャッシュします(少なくともデスクトップブラウザでは、テストするiPhoneはありません)。 CSSの背景画像だけが表示されるまで、afaikは読み込まれません。
var imageSources = ["/images/1.png", "/images/2.png", "/images/3.png"];
jQuery.each(imageSources,
function(index, src) {
var img = new Image();
img.onload = function(){
if(this.isLoaded) {
return;
}
this.isLoaded = true;
jQuery (document).trigger("imageloaded", [this.src]);
};
img.src = src;
if((img.complete || img.readyState === 4) && !img.isLoaded) {
img.onload();
}
}
);
jQuery(document).bind("imageloaded",
function(e, src) {
//div with background-image url == src can be displayed
}
);
編集:いくつかのテストを実行し、それが示されるまで、Googleのクロムは、とにかくそれをロードしながら、Firefoxは、背景画像をロードしませんでした:
[00:13:44.087] document.getElementById("e").style.display = "block";
[00:13:44.090] "block"
[00:13:44.102] GET http://codinghorror.typepad.com/.a/6a0120a85dcdae970b012877702708970c-pi
CSS編集用
#e{
background-image: url('http://codinghorror.typepad.com/.a/6a0120a85dcdae970b012877702708970c-pi');
display: none;
}
感謝を。 ..最後の夜遅くまで、タイポ! :) – Crashalot