HarmonyOS应用开发-ets页面间转场
Q 2022-02-22 16:54:33 发布1550 浏览 27 点赞 21 收藏

说明:该组件从API version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
一、页面转场通过在全局pageTransition方法内配置页面入场组件和页面退场组件来自定义页面转场动效。

PageTransitionEnter和PageTransitionExit组件支持的属性

PageTransitionEnter和PageTransitionExit组件支持的事件:

二、示例
效果展示:

示例代码:
index.ets
@Entry
@Component
struct PageTransitionExample1 {
@State scale: number = 1
@State opacity: number = 1
@State active: boolean = false
build() {
Column() {
Navigator({ target: 'pages/page1', type: NavigationType.Push }) {
Image($rawfile("fss.jpg")).width("100%").height("100%")
}
.onClick(() => {
this.active = true
})
}.scale({ x: this.scale }).opacity(this.opacity)
}
// 自定义方式1:完全自定义转场过程的效果
pageTransition() {
PageTransitionEnter({ duration: 1200, curve: Curve.Linear })
.onEnter((type: RouteType, progress: number) => {
this.scale = 1
this.opacity = progress
}) // 进场过程中会逐帧触发onEnter回调,入参为动效的归一化进度(0% -- 100%)
PageTransitionExit({ duration: 1500, curve: Curve.Ease })
.onExit((type: RouteType, progress: number) => {
this.scale = 1 - progress
this.opacity = 1
}) // 退场过程中会逐帧触发onExit回调,入参为动效的归一化进度(0% -- 100%)
}
}
page1.ets
// page1.ets
@Entry
@Component
struct AExample {
@State scale: number = 1
@State opacity: number = 1
@State active: boolean = false
build() {
Column() {
Navigator({ target: 'pages/index' ,type: NavigationType.Push}) {
Image($rawfile("gz.jpg")).width("100%").height("100%")
}
}.height("100%").width("100%").scale({ x: this.scale }).opacity(this.opacity)
}
// 自定义方式1:完全自定义转场过程的效果
pageTransition() {
PageTransitionEnter({ duration: 1200, curve: Curve.Linear })
.onEnter((type: RouteType, progress: number) => {
this.scale = 1
this.opacity = progress
}) // 进场过程中会逐帧触发onEnter回调,入参为动效的归一化进度(0% -- 100%)
PageTransitionExit({ duration: 1500, curve: Curve.Ease })
.onExit((type: RouteType, progress: number) => {
this.scale = 1 - progress
this.opacity = 1
}) // 退场过程中会逐帧触发onExit回调,入参为动效的归一化进度(0% -- 100%)
}
}
完整代码地址:
https://gitee.com/jltfcloudcn/jump_to/tree/master/PageTransitionAnimation
©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
其它
标签
鸿蒙
操作系统
HarmonyOS
相关推荐
【第一期】鸿蒙应用开发性能故障分析概述及基础工具
鸿蒙小助手
1086
0用JSLeakWatcher解决HarmonyOS内存泄漏难题
鸿蒙小助手
1357
0HarmonyOS应用性能监测服务APMS-崩溃问题定位分析指导
鸿蒙小助手
705
0HarmonyOS应用性能监测服务APMS-故障分析:快速定位线上崩溃根因
鸿蒙小助手
702
0
Q
我还没有写个人简介......
85
帖子
0
提问
245
粉丝
最新发布
智能体安全面临 6 大挑战:企业 AI 落地的新防线
2026-05-28 14:31:49 发布谁可以做鸿蒙开发者?答案是:所有人
2025-12-02 13:05:36 发布热门推荐
京公网安备:11010502051901号