Saya ingin div meluncur dari kanan di sudut 2 menggunakan css.
<div class="note" [ngClass]="{'transition':show}" *ngIf="show">
<p> Notes</p>
</div>
<button class="btn btn-default" (click)="toggle(show)">Toggle</button>
Saya bekerja dengan baik jika saya hanya menggunakan [ngClass] untuk beralih kelas dan memanfaatkan opacity. Tetapi saya tidak ingin elemen itu dirender dari awal jadi saya "menyembunyikan" dengan ngIf terlebih dahulu, tetapi kemudian transisi tidak akan berfungsi.
.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;
}
css
angular
angular-animations
Han Che
sumber
sumber
*ngIf
menghapus seluruhnya dari DOM.display:none
. Tidak adadisplay:hidden
AFAIK.{ trigger, style, animate, transition } from '@angular/animations';
Menurut dokumentasi sudut 2 terbaru, Anda dapat menganimasikan elemen "Masuk dan Keluar" (seperti di sudut 1).
Contoh animasi fade sederhana:
Dalam @Component yang relevan tambahkan:
Jangan lupa tambahkan impor
Elemen html komponen yang relevan akan terlihat seperti:
Saya membuat contoh animasi slide dan fade di sini .
Penjelasan tentang 'void' dan '*':
void
adalah keadaan kapanngIf
disetel ke salah (ini berlaku saat elemen tidak dilampirkan ke tampilan).*
- Ada banyak status animasi (baca lebih lanjut di dokumen). The*
negara diutamakan atas semua dari mereka sebagai "wildcard" (dalam contoh saya ini adalah negara ketikangIf
diatur ketrue
).Pemberitahuan (diambil dari dokumen sudut):
Deklarasikan ekstra di dalam modul aplikasi,
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
sumber
leave
animasi tidak berlangsung, karena komponen dihapus dari DOM*ngIf
sebelum itu.sumber
Solusi hanya CSS untuk browser modern
sumber
ng-enter
penggunaan kelas.Salah satu caranya adalah dengan menggunakan penyetel untuk properti ngIf dan menyetel status sebagai bagian dari memperbarui nilai.
Contoh StackBlitz
fade.component.ts
fade.component.html
example.component.css
sumber
Saya menggunakan angular 5 dan agar ngif bekerja untuk saya yang ada di ngfor, saya harus menggunakan animateChild dan di komponen detail pengguna saya menggunakan * ngIf = "user.expanded" untuk menampilkan menyembunyikan pengguna dan berfungsi untuk masuk meninggalkan
sumber
Dalam kasus saya, saya menyatakan animasi pada komponen yang salah secara tidak sengaja.
app.component.html
Animasi perlu dideklarasikan pada komponen tempat elemen digunakan dalam (
appComponent.ts
). Saya menyatakan animasiOrderDetailsComponent.ts
sebagai gantinya.Semoga bisa membantu seseorang melakukan kesalahan yang sama
sumber