[解決済み] AngularJSのng-showとフェードアニメーション
2022-02-06 17:08:38
質問
私は ngAnimate の初心者ですが、非常に簡単なことを成し遂げようとしています。
ボタンがクリックされたらdiv1を表示し、div2を隠す(なんとかできました)。そして、divが離れる/表示されるときにフェードアニメーションを表示する(私はそれを行うために管理されませんでした)。
また、離脱/表示時に両方のdivを同時に表示させたくないのですが。
を用意しました。 JSFIDDLE
以下はそのコードです。
HTML
<body ng-controller="AniCtrl as test" >
<div ng-app="app" ng-init="visibleDiv='div1'">
<md-button ng-click="visibleDiv='div1';test.showBoxOne = !test.showBoxOne">Div 1</md-button>
<md-button ng-click="visibleDiv='div2';test.showBoxOne = !test.showBoxOne">Div 2</md-button>
<section>
<div ng-show="visibleDiv == 'div1'" flex>
<div class="box" ng-show="test.showBoxOne">
<p>This is Div 1</p>
</div>
</div>
<div ng-show="visibleDiv == 'div2'" id="div2" flex>
<div class="box" ng-show="test.showBoxOne">
<p>This is Div 2</p>
</div>
</div>
</section>
</div>
</body>
JS
angular.module('app', ['ngMaterial', "ngAnimate"]);
app.controller('AniCtrl', AniCtrl);
function AniCtrl() {
var self = this;
self.showBoxOne = false;
self.showBoxTwo = false;
}
CSS
.box{
background-color:black;
color:white;
border:1px solid red;
}
.box-one {
-webkit-transition:all linear 0.5s;
transition:all linear 0.5s;
}
.box-one.ng-hide {
opacity:0;
/* transform: scale(0.8); */
}
ありがとうございました
解決方法は?
これが解決策になると思います。
を使用しているため
ng-show
には、適切なCSSを記述する必要があります。また、両方の div に同じ条件を設定することはできないので、片方の div の
ng-show
になります。
<div class="box fade" ng-show="!test.showBoxOne">
<p>This is Div 2</p>
</div>
</div>
HTMLです。
<div ng-app="sandbox" ng-init="visibleDiv='div1';test.showBoxOne=true;">
<div layout="row" flex layout-align="center">
<md-button ng-click="visibleDiv='div1';test.showBoxOne = !test.showBoxOne">Div 1</md-button>
<md-button ng-click="visibleDiv='div2';test.showBoxOne = !test.showBoxOne">Div 2</md-button>
</div>
<section layout="row">
<div class="" ng-show="visibleDiv == 'div1'" flex>
<div class="box fade" ng-show="test.showBoxOne">
<p>This is Div 1</p>
</div>
</div>
<div class="" ng-show="visibleDiv == 'div2'" id="div2" flex>
<div class="box fade" ng-show="!test.showBoxOne">
<p>This is Div 2</p>
</div>
</div>
</section>
</div>
CSSです。
.box{
background-color:black;
color:white;
border:1px solid red;
}
.fade {
transition: all linear 1s;
opacity: 1;
}
.fade.ng-hide {
opacity: 0;
}
.ng-hide {
opacity: 0;
transition: none 0;
}
これで、あなたの問題が解決することを願っています
関連
-
[解決済み】npm UNMET PEER DEPENDENCYの警告を修正するにはどうすればいいですか?
-
[解決済み] data-ng-file-selectが動作しないのはなぜですか?
-
[解決済み] エラーです。[$injector:unpr] 不明なプロバイダです。ルートプロバイダ
-
処理されない例外が発生しました。Angular 実行中のプロジェクトで NGCC に失敗しました。
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
-
[解決済み] AngularJS コントローラにおける 'this' と $scope の比較
-
[解決済み】AngularJSのディレクティブスコープにおける「@」と「=」の違いは何ですか?
-
[解決済み】AngularJSのスコーププロトタイピング/プロトタイピング継承のニュアンスとは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】npm UNMET PEER DEPENDENCYの警告を修正するにはどうすればいいですか?
-
angularjs ローカルデータストレージ LocalStorage
-
[解決済み] select 要素のデフォルト値を設定するための ng-option の使用方法
-
[解決済み] エラーです。10回の$digest()反復に達しました。動的なsortby述語で中断!?
-
[解決済み] エラーです。[$injector:unpr] 不明なプロバイダです。ルートプロバイダ
-
[解決済み] 新しい/分離されたスコープを求める複数のディレクティブ [ngController, ...] がある。
-
[解決済み] AngularJSのリソースプロミス
-
[解決済み] AngularJSの.$on()とは?
-
[解決済み] コントローラでフィルタを使用するには?
-
[解決済み] 条件に応じて特定のルートにリダイレクトする機能