故事模式實現是只加載當前瀏覽的照片和它下面的兩張照片,加載照片的時候才會加載和渲染評論區,圖片沒有加載前會用一個一像素的圖片佔位,並用一個loading類別將顯示出一個loading背景圖,判斷在視覺區的時候被替換成真正的圖片,圖片載入成功後刪除loading類別。
問題出在最後面,測試的時候發現在IE下loading類別無法刪除,當時程式碼如下:
img.src = _src;
img.src = _src;
img.onload = function(){
_con.delClass('loading') ;
}
網上找了一番,onload和定義src的語句應該換一下順序,IE從緩存中取圖片,onload根本不觸發,opera也有這個毛病,正確代碼修改如下
img.onload = function(>
img.onload = function(){<_ delclass>};
img.src = _src;
立即就正常了
結論:應該把onload寫到src前面,先告訴瀏覽器圖片載入完要怎麼處理,再讓它去載入圖片。 所以,不是IE瀏覽器不會觸發onload事件,而是因為載入緩衝區的速度太快,在沒有告訴它載入完該怎麼辦時,它已經載入完了。反過來說,firefox明顯更聰明一些,加入onload事件後,firefox瀏覽器會偵測緩衝區是否已經有此圖片,有的話直接就觸發此事件!