2012-07-26 40 views
2

我有一個評論列表。在用戶提交新評論後,我希望新提交的評論在添加評論表單之前顯示。到目前爲止,我已經開始工作了,但我希望.before是一個動畫。結合jquery .before()和.slideDown()或持續時間

更具體地說,我試圖讓.before()動作動畫/幻燈片而不是顯示。我目前有以下代碼正在顯示。

el.find(".add-comment").before(new_comment); 

我看着jquery .before()並沒有看到持續時間參數。我也試過,但它不工作:

el.find(".add-comment").before(new_comment).slideDown(); 

有什麼建議?

回答

3

您是否嘗試過使用insertBefore() insted使用before()?他們執行相同的任務,但邏輯相反。這樣你就可以在之前調用slideDown()函數來插入這段代碼。不過,我建議在執行插入操作之前隱藏插入的代碼。

你的情況:

new_comment.hide().insertBefore(el.find(".add-comment")).slideDown(); 

,我認爲new_comment已經是jQuery對象(如果它是一個HTML字符串使用$(new_comment)代替)。

但是,有時候您添加的代碼片段會讓您的代碼無法正常工作。它發生在我身上的時候,我同時添加了多個li元素。在這種情況下,由於您添加的新代碼應該自動向下滑動窗口,因此我建議使用基於fadeIn()的使用的一些小技巧。

new_comment.hide().insertBefore(el.find(".add-comment")).fadeIn('slow'); 

以這種方式,當窗口通過插入新代碼而滑落時,fadeIn函數將提供這樣的「slideDown」效果。我知道,它有點褪色。