Я хочу, чтобы div скользил справа в angular 2 с помощью css.
<div class="note" [ngClass]="{'transition':show}" *ngIf="show">
<p> Notes</p>
</div>
<button class="btn btn-default" (click)="toggle(show)">Toggle</button>
Я отлично работаю, если использую [ngClass] только для переключения класса и использования непрозрачности. Но я не хочу, чтобы этот элемент отображался с самого начала, поэтому я сначала «скрываю» его с помощью ngIf, но тогда переход не будет работать.
.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
Хан Че
источник
источник
*ngIf
полностью удаляет его из DOM.display:none
. Нетdisplay:hidden
AFAIK.{ trigger, style, animate, transition } from '@angular/animations';
Согласно последней версии документации angular 2, вы можете анимировать элементы «Вход и выход» (как в angular 1).
Пример простой анимации затухания:
В соответствующем @Component добавьте:
Не забываем добавить импорт
HTML-элемент соответствующего компонента должен выглядеть так:
Я построил пример слайдов и выцветанию анимации здесь .
Пояснения к 'void' и '*':
void
- это состояние, когдаngIf
установлено значение false (применяется, когда элемент не прикреплен к представлению).*
- Может быть много состояний анимации (подробнее в документации).*
Государство имеет приоритет над всеми из них в качестве «шаблона» (в моем примере это состояние , когдаngIf
установлено значениеtrue
).Примечание (взято из угловых документов):
Дополнительное объявление внутри модуля приложения,
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
источник
leave
анимация не происходит, потому что до этого компонент удаляется из DOM*ngIf
.источник
Единственное решение CSS для современных браузеров
источник
ng-enter
использования класса.Один из способов - использовать сеттер для свойства ngIf и установить состояние как часть обновления значения.
Пример StackBlitz
fade.component.ts
fade.component.html
example.component.css
источник
Я использую angular 5, и для работы ngif, который находится в ngfor, мне пришлось использовать animateChild, а в компоненте подробностей пользователя я использовал * ngIf = "user.expanded", чтобы показать скрытого пользователя, и он работал для ввода уход
источник
В моем случае я по ошибке объявил анимацию не на том компоненте.
app.component.html
Анимацию необходимо объявить в компоненте, в котором элемент используется в (
appComponent.ts
). Я объявлял анимацию наOrderDetailsComponent.ts
Вместо этого включенной.Надеюсь, это поможет кому-то совершить ту же ошибку
источник