2011-03-21 72 views
6

我想在紅色和黑色之間有一些文字脈動。我想用jQuery UI's animate function這樣做。似乎很簡單...是這樣的:javascript中的脈動顏色

function pulseRed() { 
    $('.pulsing').animate({ color: "red" }, 1000, pulseBlack); 
} 
function pulseBlack() { 
    $('.pulsing').animate({ color: "black" }, 1000, pulseRed); 
}); 

我關心的是如何有效的,這是。如果我在不同的地方有很多文字會跳動,我是否應該以某種方式更改.pulsing的CSS樣式表規則?在這樣的函數之間有一個無限循環是否安全?或者我會因爲堆疊太多的函數調用而陷入麻煩?

我已經使用jQuery和jQuery UI,所以我不介意使用上面的動畫顏色機制......但如果有更好的解決方案,我很樂意聽到它。

+2

這是一個''web 2.0標籤嗎?說它不是這樣! – 2011-03-21 20:14:12

+6

我知道你有很多問題,但你應該考慮通過他們並試圖選擇更多的答案。 – Moshe 2011-03-21 20:14:39

+0

@ByronWhitlock - 它可以用於HTML5遊戲。給予懷疑的好處。 – Moshe 2011-03-21 20:15:17

回答

1

如果您使用的是jQuery UI,您可能需要考慮使用,如果將其包裝在setInterval()函數中,則可以將其縮減爲一行,並將格式存儲在CSS而不是javascript中。

+1

這似乎更有效地切換一個CSS類,而不是單獨潛在的數百個文本段。儘管很可能jQuery和jQuery UI在底層實現這一點。此toggleClass效果沒有完成回調方法,因此如何知道何時開始切換回原始顏色?只需setInterval持續相同的時間?這可能會導致稍微關閉時間的問題? – 2011-03-21 20:30:46

+0

是的,它可以,我想你必須做一些試驗和錯誤,以使時機正確。另一種選擇是使用可以提供更多控制的jquery定時器插件。 對同一函數的回調問題(我認爲不完全確定)是它可能導致太多的遞歸併放慢腳本。儘管如此,不要拘泥於我。 – wiggles 2011-03-24 12:51:18