当前位置: 首页 > news >正文

动画相关 属性动画+animateToImmediately+ImageAnimator帧动画组件+模态转场

模态转场

1、animation属性动画

2、animateToImmediately

控制多个动画的操作

基本代码示意:

@Entry
@Component
struct Page07_animateToDemo {// 1. 声明相关状态变量@State scaleX: number = 1@State scaleY: number = 1build() {Column({ space: 50 }) {Text('全场低至一分购').fontSize(30).fontWeight(900).fontColor(Color.Red).backgroundColor('#e8b66d').padding(10).borderRadius(20)// 2.将状态变量设置到相关可动画属性接口.scale({x: this.scaleX,y: this.scaleY})// 3. 通过属性动画接口开启属性动画// .animation({//   duration: 1000,//   curve: Curve.EaseInOut,//   playMode: PlayMode.Alternate,//   iterations: -1// }).onAppear(() => {// 4.通过状态变量改变UI界面// this.scaleX = 1.3// this.scaleY = 1.3animateToImmediately({duration: 1000,curve: Curve.EaseInOut,playMode: PlayMode.Alternate,iterations: -1},()=>{this.scaleX = 1.3this.scaleY = 1.3})})}.width('100%').height('100%').padding(20)}@StylesfullSize() {.width('100%').height('100%')}
}

例demo:控制多个动画

@Entry
@Component
struct Page06_animateTo {// 1. 声明相关状态变量@State rotateAngle: number = 0// @Statebuild() {Column() {// 4个齿轮Flex({ wrap: FlexWrap.Wrap }) {Image($r('app.media.ic_gear1')).width(150)// 2. 将状态变量设置到相关可动画属性接口.rotate({ angle: this.rotateAngle })// .animation({})Image($r('app.media.ic_gear2')).width(150)// 2. 将状态变量设置到相关可动画属性接口.rotate({ angle: this.rotateAngle })// .animation({})Image($r('app.media.ic_gear3')).width(150)// 2. 将状态变量设置到相关可动画属性接口.rotate({ angle: this.rotateAngle })// .animation({})Image($r('app.media.ic_gear4')).width(150)// 2. 将状态变量设置到相关可动画属性接口.rotate({ angle: this.rotateAngle })// .animation({})}Button('点击旋转齿轮').onClick(() => {//两个参数,// 参数1:写相关属性,{}和animation一样的使用参数// 参数2:箭头函数,操作相关状态变量,引起UI更新animateToImmediately({duration: 2000,iterations: -1,curve: Curve.Linear}, () => {this.rotateAngle = 360})})}.width('100%').height('100%').backgroundColor(Color.Orange)}
}

3、ImageAnimator帧动画组件


4、bindSheet半模态

基本代码示意:

@Entry
@Component
struct  Index {@State isShow:boolean=falsebuild() {Column(){Button('半模态的显示隐藏').onClick(()=>{this.isShow=true})// 半模态 bindSheet(是属性,需要依附在组件上)// 参数1: 是否显示半模态(双向数据绑定)// 参数2: Builder构建函数,在里面写半模态的结构// 参数3: 设置半模态的结构样式,例如高度.bindSheet($$this.isShow,this.bindSheetBuilder(),{// height:600,//设置固定高度height: SheetSize.FIT_CONTENT,//枚举设置高度,(枚举)// MEDIUM高度yue占据全屏一半的高度,// FIT_CONTENT根据模态框里内容自适应尺寸,(一般用这个自适应)// LARGE几乎占据全屏尺寸dragBar:true,//是否显示拖拽的滚动条(配合detents使用)detents:[200,300,400],//设置区间的高度(配合dragBar使用),// 设置了detents,height也设置的话,height不生效showClose:false//是否显示关闭图标取值布尔值默认值truefalse隐藏})}.width('100%').height('100%')}
//   半模态的结构@Builder bindSheetBuilder(){Column(){}.width('100%').backgroundColor(Color.Orange)}
}

5、bindContentCover全模态

基本代码示意:

@Entry
@Component
struct BindContentCoverDemo {@State isShow: boolean = false;build() {Column(){Button('全模态').bindContentCover($$this.isShow,this.bindContentCoverBuilder())}.height('100%').width('100%')}@Builder bindContentCoverBuilder(){Column(){Button('关闭全模态').onClick(()=>{this.isShow=false})}.backgroundColor('#f40')}
}

http://www.dtcms.com/a/330127.html

相关文章:

  • 【C++】哈希表的实现
  • EUDR的核心内容,EUDR认证的好处,EUDR意义
  • web开发,在线%射击比赛管理%系统开发demo,基于html,css,jquery,python,django,三层mysql数据库
  • lesson37:MySQL核心技术详解:约束、外键、权限管理与三大范式实践指南
  • SpringBoot工程妙用:不启动容器也能享受Fat Jar的便利
  • CAD 的 C# 开发中,对多段线(封闭多边形)内部的点进行 “一笔连线且不交叉、不出界
  • ECC的原理、背景、工作机制和数学基础
  • 升级Gradle版本后,安卓点击事件使用了SwitchCase的情况下,报错无法使用的解决方案
  • Query通过自注意力机制更新(如Transformer解码器的自回归生成)的理解
  • Unity3D 中纯 Shader 的双色纹理的平铺计算与实现
  • 二次筛法Quadratic Sieve因子分解法----C语言实现
  • [git diff] 对比检查变更 | 提交前复审 | 版本回退
  • SQL 核心操作全解析:从基础查询到关联关系实战
  • Spring Boot项目通过Feign调用三方接口的详细教程
  • 在es中安装kibana
  • 雨量系列篇一:翻斗雨量传感器与压电雨量传感器的区别是什么
  • java法定退休年龄计算器
  • Thinkphp(GUI)漏洞利用工具,支持各版本TP漏洞检测,命令执行,Getshell
  • reactive和ref使用方法及场景
  • GitHub 热榜项目 - 日榜(2025-08-13)
  • 光伏电站运维巡检指南
  • 02 流程流转
  • H616基于官方外设开发----1
  • 每日五个pyecharts可视化图表-line:从入门到精通 (5)
  • C++ 四种类型转换
  • el-table合并相同名称的列
  • 朝花夕拾(三)---------中文分词利器jieba库的详解与实战应用(python)
  • 洛谷 小 Y 拼木棒 贪心
  • 函数对象(仿函数)适配器
  • 《量子雷达》第2章 从量子信息到量子雷达 预习2025.8.13