其他分享
首页 > 其他分享> > angular 过度动画

angular 过度动画

作者:互联网

1.在所需过度ts中引入

import {trigger, style, animate, transition, state} from '@angular/animations'

在app.module.ts 引入

import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

2.设定过度方案

trigger(‘动画组名’[
  state(‘动画名’,style({写CSS}),
  state(‘动画名2’,style({写CSS})
transition(‘动画名=>动画名2’,animate(‘运动时间’))
])

3.所需元素绑定触发

[@动画组名]="判断条件?‘动画名’:‘动画名2’"
  或者@动画组名

案例

html

<div style="height: 30px;width: 100px;border: 1px solid cornflowerblue" (mouseenter)="mousein()"  (mouseleave)="mouseout()"></div>

<div style="position: absolute" *ngIf="isshow" @myInsertRemoveTrigger  >
  <ng-content class="mydiv"></ng-content>
</div>

ts代码

import {Component, OnInit} from '@angular/core';
import {trigger, style, animate, transition, state} from '@angular/animations'


@Component({
  selector: 'app-test',
  templateUrl: './test.component.html',
  styleUrls: ['./test.component.css'],
  animations: [
    trigger('myInsertRemoveTrigger', [
      transition(':enter', [
        style({opacity: 0}),
        animate('100ms', style({opacity: 1})),
      ]),
      transition(':leave', [
        animate('100ms', style({opacity: 0}))
      ])
    ]),
  ],
})
export class TestComponent implements OnInit {

  constructor() {
  }

  ngOnInit(): void {
  }

  isshow = false

  mousein() {
    this.isshow = true
  }

  mouseout() {
    this.isshow = false
  }
}

别忘了在app.module.ts中引入

import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

 

标签:动画,style,过度,animations,import,animate,angular
来源: https://www.cnblogs.com/lslhhh/p/15760788.html