Spec-Zone.ru › Angular 2

animate

Experimental Function

Класс Экспорт

export animate(timing: string | number, styles?: AnimationStyleMetadata | AnimationKeyframesSequenceMetadata) : AnimationAnimateMetadata

animate — это функция, специфичная для анимации, предназначенная для использования внутри языка анимации Angular2. Если эта информация новая, перейдите на страницу метаданных анимаций компонентов, чтобы лучше понять, как используются анимации в Angular2.

animate задаёт шаг анимации, который применит предоставленные styles данные в течение заданного промежутка времени на основе значения выражения timing. Вызовы animate ожидают использования в последовательности анимации, группе или переходе.

Использование

Функция animate принимает два входных параметра: timing и styles:

  • timing — это строковое значение, которое может быть комбинацией длительности с необязательными значениями задержки и сглаживания. Формат выражения разбивается на duration delay easing (следовательно, значение, такое как 1s 100ms ease-out будет само парситься в duration=1000, delay=100, easing=ease-out. Если предоставляется числовое значение, оно будет использоваться как значение duration в миллисекундах).
  • styles — это входные данные стиля, которые могут быть вызовом style или keyframes. Если поле оставлено пустым, стили из целевого состояния будут собраны и использованы (это полезно при описании шага анимации, который завершит анимацию, анимируя до конечного состояния).
// various functions for specifying timing data
animate(500, style(...))
animate("1s", style(...))
animate("100ms 0.5s", style(...))
animate("5s ease", style(...))
animate("5s 10ms cubic-bezier(.17,.67,.88,.1)", style(...))

// either style() of keyframes() can be used
animate(500, style({ background: "red" }))
animate(500, keyframes([
  style({ background: "blue" })),
  style({ background: "red" }))
])

Пример (живая демонстрация)

import {Component, NgModule, animate, state, style, transition, trigger} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';

@Component({
  selector: 'example-app',
  styles: [`
    .toggle-container {
      background-color:white;
      border:10px solid black;
      width:200px;
      text-align:center;
      line-height:100px;
      font-size:50px;
      box-sizing:border-box;
      overflow:hidden;
    }
  `],
  animations: [trigger(
      'openClose',
      [
        state('collapsed, void', style({height: '0px', color: 'maroon', borderColor: 'maroon'})),
        state('expanded', style({height: '*', borderColor: 'green', color: 'green'})),
        transition(
            'collapsed <=> expanded', [animate(500, style({height: '250px'})), animate(500)])
      ])],
  template: `
    <button (click)="expand()">Open</button>
    <button (click)="collapse()">Closed</button>
    <hr />
    <div class="toggle-container" [@openClose]="stateExpression">
      Look at this box
    </div>
  `
})
export class MyExpandoCmp {
  stateExpression: string;
  constructor() { this.collapse(); }
  expand() { this.stateExpression = 'expanded'; }
  collapse() { this.stateExpression = 'collapsed'; }
}

@NgModule({imports: [BrowserModule], declarations: [MyExpandoCmp], bootstrap: [MyExpandoCmp]})
export class AppModule {
}

экспортировано из @angular/core/index определено в @angular/core/src/animation/metadata.ts

© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v2.angular.io/docs/ts/latest/api/core/index/animate-function.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API