2013-04-22 109 views
7

我想知道是否它可能有一个GIF动画播放,然后通过jQuery的激发关闭一个事件一旦GIF已达到其动画的结尾。一旦这样做,然后它循环回到队列的开始,然后再次播放GIF然后事件。jquery可以知道我的动画gif何时结束吗?

如果你看看我的jfiddle,我犯了一个人打字的小GIF。然后当他查找并得到一个想法时,我想让那个“思考”div改变为别的东西。我非常想让他头顶上的那个单词同步,当他的脑袋突然出现时就改变了。

http://jsfiddle.net/mMVhK/1/

<div id="thought"> 
    Amazing Idea 
</div> 

<div id="firstgif"> 
    <img src="http://i.imgur.com/pcc4DP5.gif"/> 
</div> 
+0

你GIF路径是不是在正确的小提琴......请看看 – bipen 2013-04-22 04:57:19

回答

5

我的答案是类似this answerthis one一个类似计算器的问题。

如果你有框架的,无环一组编号为GIF,可以使JavaScript中使用setTimeout触发您的活动。有了这个,它有很高的机会不同步,因为你正在玩猜谜游戏,GIF的渲染是否会以与JavaScript执行速度相同的速度播放。

一个更安全的选择是什么,我挂了对方的回答中,你使用sprite map模拟动画的方式表示。这是通过使用javascript来更改元素中图像的背景位置。通过这种方式,您可以更好地控制动画的动画效果,更好地控制javascript事件并更好地控制时间,因为它与JavaScript执行速度相关/它只会在您所说的动画框架中。

我没有一个例子,但是我很高兴帮助,如果你得到这个体面的领先地位或有其他任何问题。

Useful information regarding CSS Sprites

+0

你是什么意思没有一个循环?它怎么能没有循环? – vsync 2014-09-29 14:33:21

+0

当你创建一个gif时,你通常可以选择控制动画是否循环/重复。对于我使用'setTimeout'提出的建议,如果图像没有循环,因为您需要动画停止在特定的位置,那将是最好的/最简单的。 (其他的选择,如果你不能这样做,一旦超时触发,将动画gif切换为静态结束帧) – Turnerj 2014-09-30 00:31:00

相关问题