2011-12-23 7 views
2

このjavascriptからプリロードされたイメージをどのように参照しますか?あなたは、「プリローダー」として、ブラウザのキャッシュに依存している、あなたのコードでpreload hidden CSS imagesこのプレロードされたイメージを参照する方法

<script language="JavaScript"> 
function preloader() 
{ 
// create object 
imageObj = new Image(); 

// set image list 
images = new Array(); 
images[0]="image1.jpg" 

imageObj.src=images[0]; 
} 
</script> 

答えて

0

マット・H.

で指摘したようにではなく、個々の画像に対して個別Imageオブジェクトを作成し、コード内の論理エラーです。 1つのオブジェクトを作成していて、そのオブジェクトのsrcを変更し続けるだけです。

function preloader() { 
    // counter 
    var i = 0; 

    // set image list 
    images = new Array(); 
    images[0] = "image1.jpg" 
    images[1] = "image2.jpg" 
    images[2] = "image3.jpg" 
    images[3] = "image4.jpg" 

    //create an array to hold all the Image objects 
    imageObjs = []; 

    // start preloading 
    for (i = 0; i <= 3; i++) { 
     var imageObj = new Image(); //create new Image object for each image 
     imageObj.src = images[i]; //set the src of new Image object to current image 
     imageObjs.push(imageObj); //add the current Image object to the array 
    } 
} 
+0

申し訳ありませんが、スクリプト内ではページ内でどのように参照されていますか。 –

+0

@TravisJ: 'imageObjs'はグローバル変数なので、' imageObjs [0] '、' imageObjs [1] '、...によってそれぞれの要素にアクセスできます。 –

+0

? –

0

:このコードは

のstackoverflowで質問から来ています。最後のimages[i]ソースのみが実際にimageObj変数に保持されます。イメージの値をsrcに設定するだけで、ブラウザのキャッシュからその値が引き出されます。

事前ロードの適切な方法は、imageObjイメージオブジェクトの配列を作成することです。まだ `.src 'で参照していますが、ブラウザキャッシュではなくJavascriptメモリにイメージオブジェクトがあります。

+0

a)私のコードではなく、別の質問からです。 b)コードは最適化されていませんが、imageObjは1つのプリロードされたイメージを保持していました。 c)その画像は、プリロードに基づいてページ内に表示されるように参照することができる。 - コードを簡略化して、あなたの答えをより有用なものに編集しようとするかもしれない*かもしれない。 –

関連する問題