Creating a transition when changing properties in angular 2/4

随声附和 提交于 2019-11-30 09:15:51

You can use *ngFor for those use cases, even if it's just a single object.

@Component({
  selector: 'image-holder',
  template: `
    <div class="carousel-image">
      <img [src]="image" *ngFor="let image of [image]" [@slideInRight]/>
      <span>{{ text }}</span>
    </div>
  `,
  styleUrls: ['../greenscreen.scss'],
  animations: [
    trigger(
      'slideInRight',
      [
        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}))
          ]
        )
      ])
  ]
})
export class ImageHolderComponent {
  @Input()
  image: string;
  @Input()
  text: string;

}

this.slide = !this.slide would be true and false but when I look at your trigger you are saying [@slideInRight]="slide"

so basically, true or false.

but when I look in your animations I see :enter and :leave

what if instead you did 'true' and 'false' or try 1 and 0

then your animations would work when slideInRight is true or false and it would trigger the corresponding animation for true and false.

    trigger('work', [
  state('*', style({transform: 'translateX(0)', opacity: 1})),
  state('true', style({'border-right': '50px solid #72BF44', opacity: 1})),
  state('false', style({'border-right': '20px solid #72BF44', opacity: 1})),
  transition('1 => 0', animate('.125s .1s cubic-bezier(0.29, 0.06, 0.43, 0.92)')),
  transition('0 => 1', animate('.125s 0s cubic-bezier(0.29, 0.06, 0.43, 0.92)')),
  transition('void => *', [
    style({transform: 'translateX(-100%)', opacity: 0}),
    animate('1s 1.1s cubic-bezier(0.29, 0.06, 0.43, 0.92)')
  ])
])

I've included a sample trigger that I have used in a application.

you need to setup your states for on and off / true and false or whatever variable values you want (string, etc).

then you have a transition that goes from... true to false, or false to true, or void to true, whatever your previous state and current state are, that transition will trigger.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!