ngIf dan CSS Transitions/Animations untuk Angular 2
Bagaimana untuk meluncurkan div dari sebelah kanan menggunakan CSS dalam Angular 2?
<code class="html"><div class="note" [ngClass]="{'transition':show}" *ngIf="show"> <p> Notes</p> </div> <button class="btn btn-default" (click)="toggle(show)">Toggle</button></code>
.transition{ -webkit-transition: opacity 1000ms ease-in-out,margin-left 500ms ease-in-out; -moz-transition: opacity 1000ms ease-in-out,margin-left 500ms ease-in-out; -ms-transition: opacity 1000ms ease-in-out,margin-left 500ms ease-in-out ; -o-transition: opacity 1000ms ease-in-out,margin-left 500ms ease-in-out; transition: opacity 1000ms ease-in-out,margin-left 500ms ease-in-out; margin-left: 1500px; width: 200px; opacity: 0; } .transition{ opacity: 100; margin-left: 0; }
Jika anda hanya menggunakan [ngClass] untuk menukar kelas dan memanfaatkan kelegapan, kod ini berfungsi dengan baik. Tetapi tidak mahu elemen itu diberikan dari awal, jadi saya "menyembunyikan" dengan ngIf dahulu, tetapi kemudian peralihan tidak akan berfungsi.
Kemas kini 4.1.0
Menggunakan API animasi peralihan, tidak perlu menggunakan [hidden] atau [*ngIf hidden] lagi.
Dikemas kini 2.1.0
<code class="typescript">import { trigger, style, animate, transition } from '@angular/animations'; @Component({ selector: 'my-app', animations: [ trigger( 'enterAnimation', [ transition(':enter', [ style({transform: 'translateX(100%)', opacity: 0}), animate('500ms', style({transform: 'translateX(0)', opacity: 1})) ]), transition(':leave', [ style({transform: 'translateX(0)', opacity: 1}), animate('500ms', style({transform: 'translateX(100%)', opacity: 0})) ]) ] ) ], template: ` <button (click)="show = !show">toggle show ({{show}})</button> <div *ngIf="show" [@enterAnimation]>xxx</div> ` }) export class App { show:boolean = false; }</code>
Jawapan asal
Apabila ungkapan menjadi palsu, *ngIf akan mengalih keluar elemen daripada DOM Unsur yang tidak wujud tidak boleh dialihkan.
boleh digantikan dengan atribut tersembunyi:
<code class="html"><div class="note" [ngClass]="{'transition':show}" [hidden]="!show"></code>
Atas ialah kandungan terperinci Berikut adalah beberapa tajuk yang mungkin: 1. Bagaimana untuk Membuat Peralihan CSS Berfungsi dengan `ngIf` dalam Sudut 2? 2. Mengapakah `ngIf` Memecahkan Peralihan CSS Saya dalam Sudut 2? 3. Sudut 2: Menggabungkan Animasi `ngIf` dan CSS untuk Smooth Trans. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!