0

キャッシュされていることがわかっている背景画像をプリロードしていますが、コードがキャッシュから読み取っていません。キャッシュされていないかのように再度ロードします。「imgSrcArray」には実際には 8 つの画像が含まれていますが、この例は簡単にするためにハード コード化されています。

誰にもアイデアはありますか?

imgSrcArray = ["images/img0"]; 

//preload image
$.each(imgSrcArray, function (i, val) {
    $(function() { 
        $(document.body).append($("<img id='imgHid" + i + "'/>").attr("src", val).hide()) 
    }); 
});

$(document).ready(function(){
    $('#bkgrnddiv').css('backgroundImage', 'url(images/img0)');   
});
4

1 に答える 1

0

コードを少し整理したところ、画像が 1 回だけ読み込まれます。おそらく、ループ内のドキュメントの読み込みに追加することに関係していたのでしょう。

http://jsfiddle.net/Fuejf/

var imgSrcArray = ['http://placekitten.com/200/300'];

function preload() {
    $.each(imgSrcArray, function(i, val) {
            $('body').append($("<img id='imgHid" + i + "'/>").attr("src", val).hide())

    });
}

$(function() {
    console.log('document loaded');
    preload();
});

$(document).ready(function() {
    console.log('document ready');
    $('#bkgrnddiv').css({
        'background': 'transparent url(' + imgSrcArray +') no-repeat 0 50%'
    });
});​
于 2012-06-06T12:10:16.767 に答える