2012-11-15 35 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> 

的问题在这里是一旦图像已被下载(即它是在浏览器缓存),真的似乎没有从特定帧开始它的任何方式。