我該怎麼辦?裝載機.gif過早隱藏
我試圖顯示一個加載器圖像,而圖像被從Flickr的服務器拉到水車輪播。一旦這組圖像最終加載到手風琴和水車中,加載器圖像將被隱藏。
什麼問題?
加載程序圖像過早隱藏,導致不向用戶提供圖像仍在加載的指示。這些圖像需要6-10秒的時間才能加載到手風琴的每一部分內,這足以讓用戶離開頁面。
我看到在Firefox和Chrome中都出現了這個問題。奇怪的是,有一些非常罕見的情況,當加載鏡像實際上停留在圖像完全加載之前。
我做了什麼?
我在我的兩個JavaScript函數中試驗了$("#loader").hide();
的位置。
- 在函數回調中,但在調用帶有配置設置的水車插件之後。
- 函數回調之外,但在
displayContent()
之內。 - 無處。我想我希望它會自動隱藏後圖像加載...:P
您可以查看照片庫和標記/腳本here。以下是主要腳本和標記。
HTML
<!-- lines 348-364 -->
<!-- Tabs -->
<ul id="tabs">
<li><a href="#" name="tab1">Glass Windows</a></li>
<li><a href="#" name="tab2">Lampshades</a></li>
<li><a href="#" name="tab3">Metal and Glass Sculptures</a></li>
<li><a href="#" name="tab4">Piñatas</a></li>
<li><a href="#" name="tab5">Wood Sculptures</a></li>
</ul>
<!-- Content in the accordion -->
<div id="content">
<img src="images/loader.gif" id="loader"/>
<div id="tab1" class="thumbs"></div>
<div id="tab2" class="thumbs"></div>
<div id="tab3" class="thumbs"></div>
<div id="tab4" class="thumbs"></div>
<div id="tab5" class="thumbs"></div>
</div>
的JavaScript
// lines 264-293
//
$('#' + tabName).jflickrfeed({
limit: 20,
qstrings: {
set: photoSet,
nsid: '[email protected]'
},
useTemplate: false,
itemCallback: function(item){
$(this).append("<a href='" + item.link + "' target='" + "_blank'" + ">"
+ "<img src='" + item.image_n + "' alt=''/></a>");
}
}, function (data) {
// Special carousel stuff to make the
// showcase look spiffy
//
$('#' + tabName).waterwheelCarousel({
speed: 500,
separation: 200,
flankingItems: 3
}).css('position', '');
// Once the waterwheel is finished loading
// we can hide the loader
//
$("#loader").hide();
});
注意:該網站仍然是目前正在準備 「有求必應」 的測試,這樣的事情可能會有所不同屏幕上有點粗糙尺寸...
你確定圖像在加載程序消失時仍在加載嗎?也許水車插件導致圖像出現延遲,我試着在代碼上使用一些中斷,它看起來像圖像被附加在itemCallback函數上,並在所有圖像加載後(你可以看到它們顯示一個在一個時間)加載程序被隱藏。我會在這裏與水車插件問題 – arieljuod
@arieljuod絕對合理,雖然我覺得很奇怪,一個輕量級的插件會花費這麼長的時間來組織所有這些圖像... – Rob
我有一個想法,檢查我的答案 – arieljuod