1

最初に達成したいことを説明し、次に何を試したかを説明します。10 個のエントリを表示し、アニメーションを作成したいので、一括して「表示」するだけでなく、エントリを次々とレンダリングします。つまり、最初のエントリが表示され、100 ミリ秒後に 2 番目のエントリが表示されます。

私が疲れたのは、各エントリ オブジェクトに css ルール「display:hidden」を与えてから、エントリ ビューの didInsertElement をオーバーライドし、jquery を使用して要素をフェードインすることです。しかし、それは役に立ちませんでした。すべてのエントリのレンダリングが遅れただけです。

コードの一部を次に示します。

var inserted = 0;

EntryView = Ember.View.extend({
   classNames : [ 'hide' ], // hide is display:none
   didInsertElement : function(){
       this._super();
       this.$().fadeIn( inserted * 100 );
       inserted++;
   }
})

ここで何が起こるかというと、DOM に追加されたすべてのエントリがフェードインします (fadeIn に渡される値が増加し、次々に追加されたように見えます)。

しかし、私が言ったように、それは機能していません.. アイデア? ありがとう!

4

1 に答える 1

3

willInsertElementジョブはhandlerで実行できます

アップデート

さて、didInsertElement を使用して (あなたが行っていたように) フィドルを更新しましたが、this.$().hide()最初にステートメントを追加しました。理想的ではないと思いますが、うまくいくようです

http://jsfiddle.net/Sly7/bHL66/

アップデート(ビス)

質問で提案された方法は良い方法だと思います。いくつかの考えの後、なぜこれが機能しないのだろうか...そして実際、機能します! css が正しく定義されていますか?

http://jsfiddle.net/Sly7/mKvER/

于 2012-08-16T12:10:06.153 に答える