什麼是創建加載圖像代替.gif加載時的最佳方法?我想要一個約325x325(gif大小)的佔位符圖像來保存內容。佔位符圖像圖像區域的大小?
我已經嘗試過background:url(),但沒有看過JS/jQuery,因爲我不太熟練。
在此先感謝您的幫助。
什麼是創建加載圖像代替.gif加載時的最佳方法?我想要一個約325x325(gif大小)的佔位符圖像來保存內容。佔位符圖像圖像區域的大小?
我已經嘗試過background:url(),但沒有看過JS/jQuery,因爲我不太熟練。
在此先感謝您的幫助。
如果您可以或想要使用jQuery,您可以使用onLoad
函數來加載圖像並在加載後執行某些操作(如使用圖像替換加載gif)。
結帳this JSFiddle。它可讓您顯示立即加載的圖像以及需要加載1000毫秒的圖像。
這是如何完成的?看看下面的代碼:
var url="http://i.imgur.com/QoRjjFu.jpg", //the URL of the image to load
image=$("#some-image"), //get the image element
newImage = new Image(); //create a new image
//this is called after the image loads
newImage.onload = function(){
image.attr('src', url).show(); //swap out the loading gif
};
//this triggers loading the image, which will trigger onload above when done
newImage.src = url;
現在,如果圖像加載快,你不想快速閃爍的加載GIF,然後在切換新的圖像(因爲它會導致一個閃爍效果)。你想跳過加載gif,只顯示圖像。您可以通過使用超時,只顯示加載GIF,比方說如果新的圖像沒有加載,200ms的做到這一點:
var url="http://i.imgur.com/QoRjjFu.jpg",
image=$("#some-image"),
newImage = new Image();
newImage.onload = function(){
clearTimeout(loadingGif); //clear the loading gif timeout
image.attr('src', url).show();
};
//if the image hasn't loaded after 200ms, show the loading gif
var loadingGif = setTimeout(function(){
image.show();
}, 200);
newImage.src = url;
我希望這有助於!
我沒有理由相信這不起作用,但我似乎無法得到切換的圖像,儘管完全複製腳本並將id更改爲某些圖像。任何想法可能會導致它? – user3258704
你試過JSFiddle嗎?即使該事件只是頁面的onload事件,您仍需要將其附加到事件。 –
我該怎麼做?提前致謝 – user3258704
你可以發佈你的代碼到目前爲止? –
當你說背景:url()不起作用它做了什麼?你是否設置了背景的容器元素來顯示:block(或類似),並設置它的寬度和高度?它可能工作,但是是0px x 0px – Rob
沒有太多相關的代碼。這是一張以頁面爲中心的「眼睛」標識的單張照片。當我設置爲背景:url()與大小相同的圖像時,圖像會在鏈接不可用時消失。 – user3258704