2013-06-28 42 views
3

我還沒有找到任何關於如何在動畫中使用Angular支持新動畫的好例子。AngularJs - 如何動畫只有東西的寬度?

我有一個抽屜在我的應用程序的一邊,我想擴大/關閉時,用戶按下按鈕。問題在於,使用ng-show,它總是希望在「離開」動畫完成後應用「display:none」 - 我不希望這樣。我只想製作抽屜寬度的動畫。

達到此目的的最佳方法是什麼?

+1

角動畫目前從事CSS3過渡所以只是檢查出你的CSS類在那裏你會有trasition:所有隻是在過渡屬性 –

回答

2

你可以編寫自己的指令,使用jQuery的動畫修改元素的寬度:

angular.module('app', []).directive('testAnimate', function() { 

    return { 
    link: function(scope, iElement, iAttrs) { 
     scope.$watch(iAttrs.testAnimate, function(newValue, oldValue) { 
     var shown = !!newValue; 

     if (shown !== !!oldValue) { 
      iElement.animate({ 
      width: shown ? '+=50px' : '-=50px' 
      }); 
     } 
     }); 
    } 
    }; 

}); 

現場演示:http://plnkr.co/edit/Il0fq0nlWKckpilWFXC6?p=preview

+0

全部替換寬度除了這是一個選項的事實,我不知道這是一個很好的答案,因爲他顯然希望使用它'角度的方式' 我想說,添加一個CSS類將是更好的選擇,W不是嗎? – Sprottenwels

+0

我可能只需要這樣做。我找不到任何其他方式來使用CSS3動畫,而不是完全隱藏某些東西。我只是想調整一下寬度。 –