2014-05-05 50 views
1

我正在使用jquery顯示一個圖形,需要6到7秒才能加載,所以在那個時候我必須顯示圖像加載器。在圖形加載之前,圖像加載器必須至少顯示5秒,但其顯示僅爲1秒。ImageLoader顯示不超過1秒

JS:

$(function() { 
    /** image loader displaying for a sec */ 
    $('#graph').html('<img src="images/loader.gif">');  

    $('#graph').load(function() { 
     //data of graph 
    }); 
}); 

HTML:

<div id="graph"></div> 

回答

2
$(document).ready(function(){ 
    $('#graph').html('<img src="images/loader.gif">'); // image loader displaying 
    setTimeout(function(){ 
     $('#graph').html('Loaded') 
    },5000); 
}); 
+0

Rohit Batham感謝您的回答。我不能在這裏使用setTimeout函數,因爲如果網絡很慢,圖表可能需要超過10到15秒。 – user2721624

2

#graph的含量由.load()方法被立即更換。我建議你做一個裝載機DIV如.graphLoader,然後加載圖形數據到一個隱藏#graph DIV然後您可以取消隱藏#graph時加載在同一時間躲在.graphLoader

這裏完全是一個工作的演示上的jsfiddle http://jsfiddle.net/suNK5/

CSS:

.graphLoader { 
    display:block; 
} 
#graph { 
    display:none; 
} 

HTML:

<div class="graphLoader">Graph loading...</div> 
<div id="graph"></div> 

JAV ASCRIPT:

$(document).ready(function() { 
    $("#graph").load("someGraphURL", function() { 
     $('#graph').toggle(); 
     $('.graphLoader').toggle(); 
    }); 
});