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()を使用する代わりに使用しようとしました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 に答える