我已經構建了一個包含用於顯示藝術品的iFrame的投資組合網站。要顯示每個圖稿,將包含大圖像的html頁面加載到iFrame中。iFrame .load事件不會等待預加載圖像完成
iFrame在空的時候被隱藏(display:none),並且只有在內容完全加載時纔會淡入。
//pass url of artwork page to iFrame
$("#creativeiframe").attr('src', thisLink.attr('href'));
//fade up iFrame once content loaded
$('#creativeiframe').load(function() {
$('#creativeiframe').fadeIn(300);
});
我有這個預期運行 - 當包括大圖像內容已經完全加載內嵌框架只會加載,但加載速度慢促使我嘗試預裝藝術品圖像,這樣他們就開始下載前用戶點擊將其加載到iFrame中。
function preloadImage(url)
{
var img=new Image();
img.src=url;
}
現在我有一個問題 - 有時,當用戶點擊加載一個藝術品的iFrame會褪色起來呈現出半載圖像,或者更糟的只顯示了不加載圖片的HTML內容。我查看了Chrome開發人員工具網絡檢查員,並且在問題圖像已開始預加載但未完成時出現這種情況。
所以我的問題是:
一)有誰知道爲什麼發生這種情況?這是否是因爲預加載在iFrame src發生更改時沒有網絡請求,因此.load事件不會等待映像加載?
b。)有沒有一種方法可以讓iFrame .load事件等待「半預裝載」圖像在發射前完成加載?
感謝預期 - 去輕鬆,我是一個JS新手!
如果您的圖片真的很大,我建議您使用** Progressive JPEG **進行預覽。 –
謝謝伊戈爾,是的,我使用漸進JPEG,儘可能壓縮等。 –
順便說一句,有人知道我的問題爲什麼被拒絕嗎?沒有人要求澄清或完全回答它,所以假設它是相當明確的,而不是一個愚蠢的問題。我是新來這個論壇,所以想改善... –