HarmonyOS4.0开发应用(六)【动画】

动画

页面要做的精美炫酷,动画不可少! 分为一下三种进行讲解使用

  • 属性动画
  • 显式动画
  • 组件转场动画

属性动画

是通过设置组件的animation属性来给组件添加动画,当组件的width、height、0pacity backgroundColor、scale、rotate、translate等属性变更时,可以实现渐变过渡效果。

c 复制代码
Text('我是动画')
	.position({
		x: 10,
		y: 0
	})
	.rotate({
		angle: 0,//旋转角度
		centerX: '50%',//旋转中心横坐标
		centerY: '50%',//旋转中心纵坐标
	})
	.animation({
		duration: 1000,
		curve: Curve.EaseInOut //动画曲线
	})
名称 描述
duration 设置动画时长,默认值1000 单位:ms
tempo 动画播放速度 数字越大越快 默认值1
curve 设置动画曲线,默认值Curve.EaseInOut 平滑开始和结束
delay 设置动画延迟执行时长,默认值0 单位:ms
iterations 设置播放次数,默认值1 设置-1则无限循环
playMode 设置动画播放模式,默认播放完重头播放 默认值:PlayMode.Normal
onFinish 动画完成时触发

显式动画

显式动画是通过全局animateTo来修改组件属性,实现属性变化时的渐变过渡效果

c 复制代码
Text('我是动画')
	.position({
		x: 10,
		y: 0
	})
	.rotate({
		angle: 0,//旋转角度
		centerX: '50%',//旋转中心横坐标
		centerY: '50%',//旋转中心纵坐标
	})
animateTo(
	{duration:1000},
	()=>{
		//修改组件属性关联的状态变量
	}
)

组件转场动画

组件转场动画是在组件插入或移除时的过渡动画,通过组件的transition属性来配置。

c 复制代码
if(this.isShow){
	Text('动画')
		.transition({
			opcity:0,
			rotate: {angle: -360},
			scale:{x:0,y:0}
		})
}


//显式调用触发动画
animateTo(
	{duration: 1000},
	()=>{
		this.isShow=false
	}
}
名称 描述
type 类型,默认包括组件新增和删除。默认是ALL
opacity 不透明度,为插入时起点和删除时终点的值,默认值:1,取值范围:0,1
translate 平移效果,为插入时起点和删除时终点的值,-x:横向的平移距离。-y:纵向的平移距离。-z:竖向的平移距离。
scale 缩放效果,为插入时起点和删除时终点的值。-x:横向放大倍数(或缩小比例) -y:纵向放大倍数(或缩小比例) -z:当前为二维显示,该参数无效。centerx、centery指缩放中心点,centerX和centerY默认值是"50%"中心点为0时,默认的是组件的左上角。
rotate 旋转效果:angle是旋转角度,其它参数与scale类似

以上是动画相关内容😊

相关推荐
Sand(ContextGate)20 分钟前
Python Agent 测试实战:测试与评估,让 Agent 像传统软件一样可交付
前端·javascript·python·microsoft·ai
HwJack2021 分钟前
【共创稿事节】HarmonyOS 7文旅展陈展厅大空间 3DGS 重建的分块策略与拼接踩坑
3d·华为·harmonyos
广州华水科技30 分钟前
单北斗GNSS变形监测系统在城市安全与地质灾害中的应用前景
前端
颜进强33 分钟前
20 · NestJs循环依赖与 forwardRef:容器为什么在环面前会死,"占位再补齐"怎么救
前端·后端·ai编程
颜进强39 分钟前
19 · NestJs @Global 落地账:装饰器与 `isGlobal` 参数,各在什么场景上岗
前端·后端·ai编程
码艺-Alimjan1 小时前
Tauri 网站To桌面应用实战总结
前端·javascript·vue
颜进强1 小时前
18 · NestJS动态模块与 forRoot:`imports: [ConfigModule.forRoot({...})]` 到底在 import 什么
前端·后端·ai编程
YZ1225521 小时前
【Docker专题】使用Docker部署Vue-Flask项目前后端分离版【前端Docker部署】
前端·vue.js·docker
liangshanbo12151 小时前
浏览器渲染过程:高级前端面试题
前端
太子釢1 小时前
React 函数组件与 Hook 实践指南
前端·react.js