2

我有一个评论列表。用户提交新评论后,我希望新提交的评论显示在添加评论表单之前。到目前为止,我已经让它工作了,但我希望 .before 成为动画。

更具体地说,我试图让 .before() 动作动画/滑动而不是仅仅显示。我目前有以下用于显示的代码。

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

我查看了 jquery .before() 并没有看到持续时间参数。我也试过这个,但它不起作用:

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

有什么建议么?

4

1 回答 1

3

您是否尝试使用insertBefore()insted 或 using 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”效果。我知道,它有点褪色。

于 2012-11-06T16:24:32.753 回答