JavaScript画像の読み込み
3307 ワード
ウェブサイトの開発では、いくつかのページ効果(例えば、画像の反転)は、すぐに画像を表示する必要があります.また、いくつかのページの画像が多いです.ダウンロード時間が長いので、画像がダウンロードされていない前に他の画像(写真がダウンロードされていることを示しています.)を表示し、ダウンロードが完了したら、画像を表示します. これらの効果を実現するためには、JavaScriptの中のImageオブジェクトが使われます.
Imageオブジェクトの主な属性
src
写真の住所
complettee
Imageがブラウザでキャッシュされているか、または現在のページに読み込まれているかを示します.
この属性はIEブラウザではちょっと違っています.IEブラウザの中のcomplettee属性はオンラインイベントの後に変更されます.Firefox、Operaなどのブラウザはオンラインの前に変更されました.つまり、ピクチャが正常にダウンロードでき、ブラウザに画像がキャッシュされていない場合、IEとFirefox、Operaなどのブラウザで実行される結果は異なる.
onload
画像のダウンロードが完了したらトリガします.
このイベントに関しては、IEとFirefox、Operaなどのブラウザにも違いがあります.画像がブラウザによってキャッシュされたり、現在のページにダウンロードされたりした場合、IEはイベントをトリガしない.
まず一枚の写真を載せて、同じ写真を再度読み込む例を示します.(注:ここでは画像をブラウザキャッシュに設定しないでください)
画像のダウンロードに失敗したときにトリガします.
Javaa Script画像の読み込み例(ブラウザ対応)
Imageオブジェクトの主な属性
src
写真の住所
complettee
Imageがブラウザでキャッシュされているか、または現在のページに読み込まれているかを示します.
この属性はIEブラウザではちょっと違っています.IEブラウザの中のcomplettee属性はオンラインイベントの後に変更されます.Firefox、Operaなどのブラウザはオンラインの前に変更されました.つまり、ピクチャが正常にダウンロードでき、ブラウザに画像がキャッシュされていない場合、IEとFirefox、Operaなどのブラウザで実行される結果は異なる.
var testImage=new Image();
testImage.src="http://www.olnote.com/images/logo.gif";
testImage.οnlοad=function(){
alert(testImage.complete);// ,IE “false”, Firefox、Opera “true”。
};
Imageオブジェクトの主要イベントonload
画像のダウンロードが完了したらトリガします.
このイベントに関しては、IEとFirefox、Operaなどのブラウザにも違いがあります.画像がブラウザによってキャッシュされたり、現在のページにダウンロードされたりした場合、IEはイベントをトリガしない.
まず一枚の写真を載せて、同じ写真を再度読み込む例を示します.(注:ここでは画像をブラウザキャッシュに設定しないでください)
var url="http://www.olnote.com/images/logo.gif";
var loadImage=new Image();
loadImage.src=url;
loadImage.οnlοad=function(){
alert("onload ");
var againLoadImage=new Image();
againLoadImage.src=url;
againLoadImage.οnlοad=function(){// , IE ,onload 。
alert("onload ");
}
}
オーロラ画像のダウンロードに失敗したときにトリガします.
Javaa Script画像の読み込み例(ブラウザ対応)
JavaScript
//url: 。imageEvent: ,imageEvent.onload ,imageEvent.onerror 。
function loadImage(url,imageEvent){
var img = new Image();// Image , 。
if(imageEvent.onerror!=null){
img.οnerrοr=function(){// imageEvent.onerror 。
imageEvent.onerror.call(img);// imageEvent.onerror this Image 。
};
}
img.src = url;
if (imageEvent.onload!=null){
if(img.complete){// 。
imageEvent.onload.call(img);// imageEvent.onload this Image 。
return;// , onload onerror 。
}
else{
img.οnlοad=function(){// imageEvent.onload 。
imageEvent.onload.call(img);// imageEvent.onload this Image 。
};
}
}
}
function loadImageTest(){
var imageBox=document.getElementById("imageBox");
var imageUrl=document.getElementById("imageUrl");
var maxWidth=imageBox.scrollWidth;
imageBox.innerHTML=" 。。。";
var imageEvent={
onerror:function(){
imageBox.innerHTML=" 。";
},
onload:function(){
imageBox.innerHTML="";
if(this.width>maxWidth)
{
this.width=maxWidth;
}
imageBox.appendChild(this);
}
};
loadImage(imageUrl.value,imageEvent);
}
loadImageTest();
ソース:http://www.olnote.com/itlife/note/100000069.aspx