2013-04-22 44 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