私はAngularJSを使ってWebアプリケーションを構築しており、トランジションアニメーションを作成しようとしています。ボタンを押すと、コンテンツが200ms以上フェードアウトし、新しいコンテンツに変更され、200ms以上再びフェードインします。以下は、ボタンをngクリックして呼び出す関数です。AngularJSタイムアウトの関数が完了するまで待つ
$scope.homeButton = function(){
\t fadeOut();
\t $scope.content="dolor sit amet";
\t fadeIn();
\t resetButtons();
\t $scope.homeButtonSrc = "res/homebuttonselected.png";
};
関数が呼び出されたときただし、コンテンツはすぐに変化し、その後フェードアウト。ボタンを再度クリックすると、フェードインとフェードアウトのアニメーションを前後に切り替えられます。 fadeIn()とfadeOut()を以下に示します。
var fadeOut = function fadeOut(){
\t var countDown = function(){
\t \t $scope.contentOpacity -= .01;
\t \t if($scope.contentOpacity > 0){
\t \t \t $timeout(countDown, 2);
\t \t }
\t }
\t $timeout(countDown, 2);
}
var fadeIn = function fadeIn(){
\t var countUp = function(){
\t \t $scope.contentOpacity += .01;
\t \t if($scope.contentOpacity < 1){
\t \t \t $timeout(countUp, 2);
\t \t }
\t }
\t $timeout(countUp, 2);
}
任意の助けいただければ幸いです!
ありがとう、これはほとんど完璧に機能しました!私はあなたが書いたようにそれを試していくつかの問題があった。私はcountUp()とcountDown()の最初の呼び出しからtimeOutを取り除き、それらの関数の中の$ timeoutに戻り値を追加して解決しました。私は確かにng-animateのドキュメントを見ています。また、ありがとうございます。 – RyanM