2012-11-15 79 views
6

我在網頁上有一個很大的gif動畫,並且希望在它完全加載完成之前啓動它。用JavaScript/jQuery怎麼可能?開始gif動畫,直到它完全加載

+1

您無法停止/啓動gif動畫。您可以隱藏它並在加載時顯示它,或者顯示靜態圖像(例如jpg),並在加載後將其交換爲gif。 – Archer

+0

[Javascript加載時只顯示動畫gif]的可能重複(http://stackoverflow.com/questions/5826747/javascript-to-only-display-animated-gif-when-loaded) –

回答

7

使用一個佔位符圖像,並用動畫替換GIF一旦GIF滿載:

<img id="anim" src="placeholder.gif"> 

JS:

var myanim = new Image(); 
myanim.src = '/img/actions.png'; 
myanim.onload = function() { 
    document.getElementById('anim').src = myanim.src; 
}​ 

http://jsfiddle.net/mblase75/6XTg7/

1

您可以隱藏與CSS的GIF(或JS用佔位符代替)和GIF被加載時,你可以火秀()

$('img[src$=".gif"]').load(function(){$(this).show())

0

你不能控制通過javascript的gif動畫,所以你必須實施某種形式的黑客。你必須在開始時隱藏它。您可以將實際圖片的尺寸與「等待」等文字放在一起,而不是實際圖片。

當圖像在瀏覽器中下載時,您可以用div替換圖像。並且在那個時間點動畫將開始

1

您可以隱藏它,直到完全加載。

<!--- this uses jquery !--> 

<script type="text/javascript"> 

    var image_url = "http://media.tumblr.com/tumblr_m4doax3R071r9c1z7.gif"; 

    var image = $('<img />').load(function(){ 

     $(this).show(); 

    }).attr('src', image_url).hide(); 

    $('body').append(image); 

</script> 

的問題在這裏是一旦圖像已被下載(即它是在瀏覽器緩存),真的似乎沒有從特定幀開始它的任何方式。