仿照keyframes实现效果

仿照keyframes实现效果

HarmonyOS
2024-07-24 11:06:10
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
平方厘米

在实现类似效果时,可以采用delay动画的方式,或者在onFinish回调函数中触发新的动画,以确保操作的连贯性和效果的一致性。

参考代码如下:

@Entry
@Component
struct AnimateToExample {
  @State widthSize: number = 250;
  @State heightSize: number = 100;
  @State rotateAngle: number = 0;
  private flag: boolean = true;
  @State opacityValue: number = 1;

  build() {
    Column() {
      Button('change size')
        .width(this.widthSize)
        .height(this.heightSize)
        .margin(30)
        .opacity(this.opacityValue)
        .onClick(() => {
          if (this.flag) {
            animateTo({
              duration: 2000,
              curve: Curve.EaseOut,
              iterations: 1,
              playMode: PlayMode.Normal,
              onFinish: () => {
                animateTo({
                  duration: 2000,
                  curve: Curve.EaseOut,
                  iterations: 1,
                  playMode: PlayMode.Normal,
                  onFinish: () => {
                  }
                }, () => {
                  this.opacityValue = 0.2;
                })
              }
            }, () => {
              this.opacityValue = 0.5;
            })
          }
        })
    }.width('100%').margin({ top: 5 })
  }
}
分享
微博
QQ
微信
回复
2024-07-24 19:56:43