18

angularjs ng-animate を動かして動作させることができないようです。また、実際の例もないようです。たとえば、デモ フィドルを見てみましょう: http://jsfiddle.net/yfajy/

次のように css に移動命令を追加しても、リストをフィルタリングするときにアニメーション効果は作成されません。

.example-repeat-move-setup {  opacity:1;
  color:red }
.example-repeat-move-setup.example-repeat-move-start {   opacity:1;
  color:black;}

誰かが実際の例を投稿できますか?

4

2 に答える 2

14

私はそれをいくつかいじり、次の兄弟CSSセレクター+ (フィドル)を使用して動作させました。どうやらmoveアニメーションは、最初に移動した要素と最後から 2 番目に変更された要素の間のすべての要素に適用されますが、最後に変更された要素には適用されません。

このフィドルでは、要素 0 と 4 のみを交換したにもかかわらず、移動アニメーションが要素 0、1、2、3 に適用され、要素 4 には適用されないことがわかります。要素 1、2、および 3 の両方に適用され、4 に適用される唯一のスタイルです。

このフィドルでは、実際に見ることができます。6 番目の要素を 3 番目の要素に置き換え、新しい人を 1 番目と 3 番目に配置するボタンがあります。1 番目と 3 番目はエンター アニメーションを取得し、4 番目と 5 番目は移動アニメーションを取得し、6 番目は何も取得しません。

于 2013-05-29T05:48:38.780 に答える
8

ドキュメントごと:

  • enter - 新しいアイテムがリストに追加されたとき、またはフィルターの後にアイテムが表示されたとき
  • leave - 項目がリストから削除されたとき、または項目が除外されたとき
  • move - 隣接するアイテムがフィルターで除外されて並べ替えが行われたとき、またはアイテムの内容が並べ替えられたとき

そのため、アイテムをフィルタリングすると、移動アニメーションではなく、開始アニメーションと終了アニメーションのみがトリガーされます。

移動アニメーションをトリガーするには、次のjsfiddle の例のように、アイテムの順序を変更する必要があります。

$scope.shuffle = function() {
    $scope.friends = _($scope.friends).shuffle();
}

ngAnimate に関するより詳細な説明もご覧ください。

http://gsklee.im/post/50254705713/nganimate-your-angularjs-apps-with-css3-and-jquery

于 2013-05-12T23:05:59.630 に答える