HarmonyOS7 属性动画基础:animateTo 驱动透明度与位移动画
文章目录前言基础概念animateTo vs .animation()从简到繁透明度动画位移动画组合复位代码详解完整状态管理动画目标组件按钮控制面板实时数值显示Curve 曲线对比常见问题进阶技巧写在最后前言ArkUI 有两种动画模式声明式动画.animation()和显式动画animateTo。前者适合状态变化自动过渡的场景后者适合在特定时刻触发动画的场景。今天聊animateTo的基础用法用透明度和位移两个属性来入门。基础概念animateTo vs .animation()特性.animation()animateTo触发方式状态变化自动触发手动调用触发代码位置组件属性事件回调中适用场景属性跟随状态变化点击按钮触发动画多次触发每次值变化都触发只在调用时触发animateTo的函数签名animateTo({duration:500,curve:Curve.EaseInOut},(){// 在这里修改状态变量修改会走动画})第一个参数是动画配置第二个是回调函数。回调里修改的状态变量会以动画方式过渡到新值。从简到繁透明度动画Button(淡出).onClick((){animateTo({duration:500,curve:Curve.EaseInOut},(){this.opacityValue0.2})})Button(淡入).onClick((){animateTo({duration:500,curve:Curve.EaseInOut},(){this.opacityValue1})})点击淡出时opacityValue从 1 渐变到 0.2持续 500ms使用EaseInOut曲线先慢后快再慢。位移动画Button(右移).onClick((){animateTo({duration:600,curve:Curve.EaseOut},(){this.offsetX60})})方块向右平移 60vpEaseOut曲线让运动先快后慢有减速感。组合复位Button(复位).onClick((){animateTo({duration:500,curve:Curve.FastOutLinearIn},(){this.opacityValue1this.offsetX0})})一个animateTo调用里同时修改多个状态变量透明度和位移会同时做过渡动画。FastOutLinearIn曲线快速开始然后线性减速。代码详解完整状态管理EntryComponentstruct BasicPropertyAnimation{StateopacityValue:number1StateoffsetX:number0// ...}只需要两个状态变量一个控制透明度一个控制水平偏移。动画目标组件Column().width(80).height(80).backgroundColor(#6BCB77).borderRadius(12).opacity(this.opacityValue).translate({x:this.offsetX}).opacity()和.translate()都是可动画属性——框架知道怎么在两个值之间做插值。按钮控制面板Row({space:12}){Button(淡出).onClick((){/* ... */})Button(淡入).onClick((){/* ... */})Button(右移).onClick((){/* ... */})Button(复位).onClick((){/* ... */})}.width(100%).justifyContent(FlexAlign.SpaceEvenly).margin({top:12})四个按钮一字排开用Row({ space: 12 })设置间距SpaceEvenly均匀分布。实时数值显示Text(当前透明度:${this.opacityValue.toFixed(1)}| 偏移:${this.offsetX}vp).fontSize(12).fontColor(#999999).margin({top:12})动画过程中数值是连续变化的。toFixed(1)保留一位小数显示更整洁。Curve 曲线对比这个案例用到了三种曲线对比一下Curve运动特点视觉效果EaseInOut先慢后快再慢最自然适合大多数过渡EaseOut先快后慢有减速感适合停下来FastOutLinearIn快速启动线性减速有点冲的感觉选曲线的原则入场/出现用EaseOut快速出现慢慢停稳出场/消失用EaseIn慢慢开始快速消失状态切换用EaseInOut平滑过渡常见问题QanimateTo 的回调里能写异步操作吗不能。回调里只应该写状态变量的赋值操作。异步操作放在animateTo外面。Q动画还没结束又触发了新动画新动画会打断旧动画从当前值开始过渡到新目标值。不会叠加。Q怎么知道动画结束了animateTo的第一个参数支持onFinish回调animateTo({duration:500,curve:Curve.EaseInOut,onFinish:(){console.info(动画完成)}},(){this.opacityValue0.2})animateTo的回调函数里不要写非状态修改的代码比如网络请求、日志打印。它的作用是告诉框架哪些状态变量需要做动画不是通用的回调。进阶技巧链式动画在onFinish里触发下一个animateTo形成动画序列。不同属性不同时长如果需要透明度和位移用不同的动画时长可以分两次animateTo调用。延迟启动用setTimeout包裹animateTo实现延迟动画或者用animateTo的delay参数。写在最后animateTo是 ArkUI 动画系统的手动模式给你精确的触发控制。配合Curve曲线和duration时长能做出各种节奏感不同的动画效果。今天用透明度和位移入了门后面的文章会在这个基础上扩展到缩放、旋转、颜色变化等更多属性。

相关新闻

FreeRDP曝高危堆缓冲区溢出漏洞:wfreerdp客户端遭弃用,远程代码执行风险急剧上升

FreeRDP曝高危堆缓冲区溢出漏洞:wfreerdp客户端遭弃用,远程代码执行风险急剧上升

开源远程桌面协议实现FreeRDP最近爆出一记重锤。安全研究团队对外公开了完整的漏洞细节,连带概念验证代码也一并放出。这意味着全球范围内依赖这款工具进行日常远程运维的企业和个人,正面临一场实打实的安全风暴。 这个漏洞的棘手之处在于,它…

2026/10/12 4:10:35 阅读更多 →
【Springboot毕设全套源码+文档】基于springboot小型家政服务管理系统的设计与实现(丰富项目+远程调试+讲解+定制)

【Springboot毕设全套源码+文档】基于springboot小型家政服务管理系统的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/10/2 12:54:53 阅读更多 →
【Springboot毕设全套源码+文档】基于JavaWeb的图书馆管理系统的设计与实现(丰富项目+远程调试+讲解+定制)

【Springboot毕设全套源码+文档】基于JavaWeb的图书馆管理系统的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/10/12 15:02:48 阅读更多 →

最新新闻

前端链接测试从入门到落地:href 检测方案与实战经验

前端链接测试从入门到落地:href 检测方案与实战经验

做前端开发这些年,我越来越确定一件事:链接测试是所有页面检查里最容易被忽略、但一旦翻车影响面又最大的环节。“test href”这个短语初看像占位符,实际上它点破了一个很实在的动作——把页面里每一个 a 标签的 href 都当成潜在事故点&#…

2026/10/13 20:35:41 阅读更多 →
Spring Security实战:前后端分离下JWT认证与权限控制指南

Spring Security实战:前后端分离下JWT认证与权限控制指南

1. 项目概述与整体设计思路 1.1 为什么要花大力气搞 Spring Security 刚接手某个模拟项目X的时候,我其实挺纠结的:项目里已经有了一套基于拦截器和 ThreadLocal 的简易登录体系,能跑、能用,看起来也没啥大毛病。但后来随着接口越…

2026/10/13 20:35:41 阅读更多 →
WordNet相似度计算实战:NLTK实现与踩坑指南

WordNet相似度计算实战:NLTK实现与踩坑指南

前阵子帮朋友看一个智能问答的小项目,发现最棘手的问题不在模型选型,而在一个看起来特别基础的需求上:用户问“怎么修车”,系统里明明有“汽车保养指南”,却因为关键词匹配不上,死活召回不到。这种问题说白…

2026/10/13 20:35:41 阅读更多 →
Linux用户与组管理完全指南:从UID/GID到权限隔离实战

Linux用户与组管理完全指南:从UID/GID到权限隔离实战

1. 用户与组管理到底在解决什么问题先说结论:用户与组管理是所有多用户操作系统最基础、也最容易被轻视的一道安全防线。我见过不少项目初期图省事,全部人共用一个账号,等到需要追责、隔离权限、清理环境的时候,才发现当初偷的懒全…

2026/10/13 20:35:41 阅读更多 →
计及氢能的综合能源优化调度Matlab实现与建模详解

计及氢能的综合能源优化调度Matlab实现与建模详解

最近因为一个模拟园区的项目,我把一套计及氢能的综合能源优化调度模型从论文里搬到了Matlab里,跑到能出结果、能出图、能复现的程度。说实话,这种题目看着“高大上”,拆开其实就是三件事:把设备建好模、把约束写对、把…

2026/10/13 20:35:41 阅读更多 →
从零构建Agent技能库:技能层设计、动态装载与回归测试的工程实践

从零构建Agent技能库:技能层设计、动态装载与回归测试的工程实践

直接做Agent应用的人,这两年应该都有同感:单个Agent的对话能力已经不是瓶颈了,真正拉开差距的是Agent能不能稳定地调用外部能力、按流程完成任务。我最近在整理和重构一个内部项目,名字就叫“agent-skills”,本质上是一…

2026/10/13 20:34:36 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →