HarmonyOS讲解并演示 animateTo 动画效果

news2024/9/27 5:52:48

本文 我们一起看一看动画

首先 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 它会有一个原路返回的过程 看着更流程了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1379955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Maven】005-基于 IDEA 进行 Maven 依赖管理

【Maven】005-基于 IDEA 进行 Maven 依赖管理 文章目录 【Maven】005-基于 IDEA 进行 Maven 依赖管理一、Maven 依赖管理二、GAVP 再说明三、Maven 工程依赖管理配置1、依赖配置2、版本统一声明和使用3、依赖范围说明4、Maven工程依赖下载失败错误解决(重点&#xf…

WAMP apache 无法启动(端口 80 未使用)

这段时间系统重装后,安装WAMP Server,装好后点击启动绿了下然后又变成了黄色,托盘图标无论是左键点击还是右键点击都没有反应,wampapache64服务也启动不起来,提示“windows不能在本地计算机启动wampapache”&#xff0…

Linux QT以太网配置及相关知识

Linux QT以太网配置及相关知识 平台和内容概述安装Qt Creator设计用户界面编辑源代码自定义LineEdit创建槽函数以太网逻辑功能实现静态配置ui逻辑:功能概述代码实现DNS退出程序输入框中的ip规范保存数据和读取数据构建文件编译运行平台注意点开机自动配置以太网总结平台和内容…

世界人口数据分析与探索

文章目录 世界人口数据集介绍数据集 1:世界国家统计数据:数据集 2:世界人口详细信息(2023 年):数据集 3:按年份划分的世界人口(1950-2023): 数据分析导入必要…

Linux中DNS域名解析服务及实验

一、DNS介绍 1、DNS 是域名系统,应用层协议,是互联网的一项服务,是将域名转换成网络可以识别的IP地址,再通过IP地址访问主机。这种由文字组成的名称更容易记忆。 DNS是“域名系统"的英文缩写。它作为将域名和IP地址相互映…

小学信息科技Python课程第2课:坐标与画笔

一、turtle画布与坐标系 在同一平面互相垂直且有公共原点的两条数轴构成平面直角坐标系。在坐标系中,水平方向的轴都称为x轴,垂直方向的轴都称为y轴 它们相交于O点,在这一个点里,x轴的值为0,y轴的值也为0,所…

解决SlF4J配置冲突警告:【SLF4J: Class path contains multiple SLF4J providers】

1、问题背景 最近在启动Springboot的时候出现了SLF4J相关的报红警告,虽然是不影响程序运行,但是作为一个有着代码洁癖的人看的是真难受。 警告信息如下: SLF4J: Class path contains multiple SLF4J providers. SLF4J: Found provider [ch…

WPF真入门教程27--项目案例--设备数据实时监测

1、上图看效果 今天要做的一个案例是这样的效果,它能实时监测车间设备有关数据,并以表格和图形显示在界面上,这个比上个案例要复杂些,颜值也高些,通过这个来巩固wpf的技能,用到了命令绑定,样式…

UCB Data100:数据科学的原理和技巧:第二十一章到第二十六章

二十一、SQL II 原文:SQL II 译者:飞龙 协议:CC BY-NC-SA 4.0 学习成果 介绍过滤组的能力 在 SQL 中执行数据清理和文本操作 跨表连接数据 在本讲座中,我们将继续上次的工作,介绍一些高级的 SQL 语法。 首先&…

PHP在线文档管理系统源码

PHP在线文档管理系统源码 系统功能与介绍 在数据持续、快速增长背景下,企业面临海量非结构化数据处理需求,企业现有架构 通常无法应对海量非结构化数据的管理与应用。 支持私有化部署,完全内网环境下也可正常使用。 Windows、Linux、Mac等全平…

Java异常处理--异常处理的方式1:try-catch-finally

文章目录 一、异常处理概述二、方式1:捕获异常(try-catch-finally)(1)抓抛模型(2)try-catch-finally基本格式1、基本语法2、整体执行过程3、try和catch3.1 try3.2 catch (Exceptiontype e) &…

OSG加载STL模型

下载了2个简单stl模型,用基本的加载代码;直接可以加载; 查一点资料; 怎样在OSG中添加支持STL格式的模型文件? 使用OSG时,如果需要导入STL格式的模型文件,需要添加STL插件。 可以通过在代码中调…

docker compose安装gitlab

环境 查看GitLab镜像 docker search gitlab 拉取GitLab镜像 docker pull gitlab/gitlab-ce 准备gitlab-docker.yml文件 version: 3.1 services:gitlab:image: gitlab/gitlab-ce:latestcontainer_name: gitlabrestart: alwaysenvironment:GITLAB_OMNIBUS_CONFIG: |external_url…

流量加密之OpenSSL反弹加密

目录 1、OpenSSL 简介 2、使用 OpenSSL 反弹加密 shell 3、使用wireshark抓包验证 4、搭建 HTTPS Server 1、OpenSSL 简介 OpenSSL 是一个强大的、商业级的、功能齐全的开源工具包,用于 TLS(以前称为 SSL)、DTLS 和 QUIC(目前…

怎么把m3u8文件转换为mp4?方法很简单

怎么把m3u8文件转换为mp4?m3u8文件是一种特殊的媒体文件格式,通常用于在线流媒体服务,如HLS(HTTP Live Streaming)。这种格式在很多场合下都非常有用,比如在线视频播放、直播等。然而,有时候我们…

ubantu运维,nginx相关操作

1、使用 命令ps aux | grep nginx查找nginx 运行目录,如下图: 2、使用 ​​​​​​​命令cd /usr/sbin 切换到nginx 运行目录,如下图: 3、修改配置文件后,使用 nginx -t 命令测试nginx配置文件的语法是否正确&#x…

Mac M1 Parallels CentOS7.9 Install Jenkins

官网: https://www.jenkins.io/ 一、Install & Check Java Env Oracle官网下载Java: https://www.oracle.com/cn/ # 拷贝到Jenkins服务器 scp Downloads/jdk-8u391-linux-aarch64.tar.gz root10.211.55.34:~# 解压 mkdir -p /opt/java && tar -zxvf jdk-8u391-li…

2024最新外卖CPS分销微信小程序源码【前端+后台+数据库+分销功能】

内容目录 一、详细介绍二、效果展示三、源代码下载地址 一、详细介绍 外卖侠CPS全套源码是一款为外卖平台提供分销功能的微信小程序。用户可以通过你的链接去领取外卖红包,然后去下单点外卖,既能省钱,又能获得佣金。该小程序带有商城、影票、…

Java内置锁:深度解析lock和trylock

lock和tryLock是两种获取锁的方式,它们在处理并发问题时有所不同,lock是阻塞性的,确保只有一个线程能访问被锁资源,但可能导致线程长时间等待;而tryLock非阻塞性,若锁被占用则立即返回失败,避免…

大数据人工智能在线实习项目:某实习网站招聘信息采集与分析

01前置课程 Python编程基础 Python网络爬虫实战 Python爬虫环境与爬虫简介 网页前端基础 简单静态网页爬取 常规动态网页爬取 模拟登录 Python数据分析与应用、可视化 数据分析概述 Numpy数值计算 Pandas统计分析与数据预处理 Matplotlib可视化 Pyecharts绘图 02师…