HarmonyOS讲解并演示 animateTo 动画效果

本文 我们一起看一看动画

首先 harmonyos中的东西 其实就是通过改变 响应式数据的值 以及配合动画参数 即可完成

我们先来看 布局更新动画 中的 显示动画
简单说 触发事件 改变组件的位置信息

我们先编写代码如下

@Entry
@Component
struct Index {

  @State itemAlign: HorizontalAlign = HorizontalAlign.Start

  build() {
    Column({space: 30}) {
      Text("点击修改布局位置")
        .fontSize(38)
        .margin({top:188})
      Column({space: 18 }) {
        Button("按钮1")
          .width(100)
          .height(58)
         Button("按钮2")
           .width(100)
           .height(58)
      }
      .margin(20)
      .borderWidth(2)
      .width("90%")
      .height(400)
      .justifyContent(FlexAlign.Center)
      .alignItems(this.itemAlign)

      Button("执行").onClick((event: ClickEvent) => {
        
      })
  }
    .width('100%')
    .height('100%')
  }
}

在这里插入图片描述
主容器下 Text 文本展示内容
Column 组件下 两个 button组件
justifyContent 因为是 Column 组件 主轴是 垂直方向 FlexAlign.Center 居中对齐 简单说 垂直方向居中对齐
alignItems 设置侧轴 就是 我们的水平方向 用了 组件中的 itemAlign属性 值是 HorizontalAlign.Start 由左至右

那么 这就很简单了 想改变它的位置 改 itemAlign 显然就可以了
我们在下面按钮上 设置的点击事件中加入代码

this.itemAlign = HorizontalAlign.End;

将它设置末尾对齐
在这里插入图片描述
我们点击后 它会立刻跑到末尾的位置 但可能会显得太快了 一下就跳过去了
在这里插入图片描述
我们将点击事件的代码改成这样

animateTo({
  duration: 3000,
},() => {
  this.itemAlign = HorizontalAlign.End;
})

在这里插入图片描述
这里 我们调用 animateTo 动画效果 然后 第一个参数 是一个json 里面放动画参数 我们这里的参数是 duration 动画时长 毫秒单位 三千毫秒 等于 三秒
然后 第二个参数是一个箭头函数 里面写动画要做的事 我们将改变对齐方式的代码放进来

此时 我们再次点击 它就有一个慢慢移动过去的效果了
在这里插入图片描述
它默认的这种速率 大家会感受到 刚开始 快 然后慢了 最后又开始快了

我们在 animateTo 第一个参数JSON中写

curve: Curve.

它就会弹出很多提示
在这里插入图片描述
Linear 表示匀速
Ease 慢
EaseIn 慢慢的进入动画 后面加快
EaseIn0ut 开头结尾相对慢一些 中间比较快
这个 大家可以自己查官方文档 Curve中 的内容
这里 我们先用 Linear 均匀的速度 走完整个动画
在这里插入图片描述
我们点击后 就会均匀的按duration时间慢慢位移过去
在这里插入图片描述
然后还有 delay 延迟属性
如下图 箭头指向位置 我们让他延迟两秒 就是 它触发动画会先停两秒 然后才执行
在这里插入图片描述
还有很多属性 大家可以自己去找 animateTo

onFinish 动画结束之后 执行的函数

animateTo({
	duration: 3000,
	curve: Curve.Linear,
	delay: 2000,
	onFinish: (()=>{
	    console.log("动画结束");
	})
},() => {
   this.itemAlign = HorizontalAlign.End;
})

此时 我们点击动画结束后 控制台就会执行 onFinish输出
在这里插入图片描述
iterations 可以控制动画播放的次数
这里 我们 将 delay 延迟去掉 不然太浪费时间了
下面 iterations 3 让它执行三次
在这里插入图片描述
点击后 他就会执行三次才结束
在这里插入图片描述
iterations 给个 -1 即是一直重复
在这里插入图片描述
playMode 设置播放的模式
我们输入

playMode: PlayMode.

下面就会带出很多提示
在这里插入图片描述
这里 我们 来个 Reverse
这样 我们整个动画就会放过来 之前是从左到右
现在就成了从右到左
在这里插入图片描述
Alternate 我们可能会比较常用
之前 我们是 到最右侧 然后马上回到左侧 而加上 Alternate 它会有一个原路返回的过程 看着更流程了
在这里插入图片描述

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF(Windows Presentation Foundation)是一种Microsoft开发的用户界面框架,可以用来创建富客户端应用程序。WPF框架提供了丰富的动画功能,能够实现窗体展开和收缩的动画效果。 要实现窗体展开和收缩的动画效果,可以借助WPF框架提供的动画类和属性。首先,我们需要定义一个动画对象,可以使用DoubleAnimation类来指定动画的目标属性和起始值,并设置动画的持续时间和缓动函数。 比如,我们可以定义一个名为widthAnimation的动画对象,将它的目标属性设置为窗体的宽度属性。然后,通过在代码中调用Storyboard类来播放动画。 在展开和收缩窗体的过程中,可以通过更改窗体的尺寸来实现动画效果。通过使用代码控制窗体的尺寸属性,我们可以创建展开和收缩的动画效果。 如果要实现窗体展开动画,可以通过将窗体的宽度逐渐增加到目标宽度来实现。如果要实现窗体收缩动画,可以通过将窗体的宽度逐渐减小到目标宽度来实现。在播放动画时,可以使用AnimateTo()方法将动画应用到窗体上。 除了动画效果,你还可以通过WPF提供的其它功能来增强用户界面的交互体验。例如,通过添加鼠标事件来触发动画,或者使用触摸事件来作为触发展开和收缩效果的手势等。 总之,使用WPF框架可以方便地实现窗体展开和收缩的动画效果。通过定义动画对象,并在代码中控制窗体的尺寸属性,可以创建出独特的展开和收缩动画效果,提升用户界面的交互体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值