微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Jquery可以知道我的GIF动画结束了吗?

我想知道它是否有可能有一个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>

解决方法

我对此的回答类似于类似的stackoverflow问题上的 this answerthis one.

如果您有一个具有设定帧数且没有循环的GIF,您可以使用javascript使用setTimeout来触发您的事件.尽管如此,它很有可能因为你正在玩一个猜谜游戏而失去同步,因为GIF的渲染是否会以与每次javascript执行相同的速度播放.

更安全的选项是我使用sprite map模拟动画的方式所说的其他答案.这是通过使用javascript来更改元素中图像的背景位置来实现的.通过这种方式,您可以更好地控制动画的动画效果,更好地控制javascript事件和更好的计时,因为它与javascript执行速度相关/它只会在您告诉它的动画帧中.

我没有一个例子,但是如果你对此有一个不错的开端或有任何其他问题,我很乐意提供帮助.

Useful information regarding CSS Sprites

原文地址:https://www.jb51.cc/jquery/177169.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐