HarmonyOS - 基于ArkUI(JS)实现信件弹出效果
HarmonyOS - 基于ArkUI(JS)实现信件弹出效果
作者:罗晓纯 2022-09-21 14:51:21系统 OpenHarmony 可别觉得书信是一个过时的东西,它可是80后的情怀,90后的回忆,00后的新宠,是经典的代名词。今天就想实现把这些古老的元素融入到新时代的产物当中。想了解更多关于开源的内容,请访问:
51CTO开源基础软件社区
https://ost.51cto.com
前言
自从大家使用QQ、微信、邮件等网络平台交流以后,大家对纸这种介质和书信这种通讯方式可能都比较陌生了。可别觉得书信是一个过时的东西,它可是80后的情怀,90后的回忆,00后的新宠,是经典的代名词。今天就想实现把这些古老的元素融入到新时代的产物当中。
项目说明
工具:DevEc Studio 3.0 Beta3主要用到知识:animation,Options,keyframes官方API链接:动画效果效果展示
实现原理
信件由信封上部分、信封主体和信纸三部分组成,首先通过css实现将三个部分组合成信封的样式,接下来根据animation组件方法中的播放或取消方法来实现信件弹出或收回的动画效果,并在信件展开的同时,使用定时器实现模拟读取文字的效果。
实现步骤
调整信封上下两个部分的位置,并调整信封和信纸三个部分的层级。在点击信件之后,通过id属性标识获取组件对象并调用animate组件方法,给不同id对象调用对应的动画方法。对信封两个部分传入展开后的新位置,同时传入信纸新的height值和bottom值。使用定时器实现模拟读文字效果判断是折叠信封时,调用animate组件的cancel()方法,实现信封收回的效果。使用到的官方 API
Options属性说明。
参数
类型
默认值
说明
duration
number
0
指定当前动画的运行时长(单位毫秒)。
easing
string
linear
描述动画的时间曲线,支持类型见表4 easing有效值说明。
delay
number
0
设置动画执行的延迟时间(默认值表示无延迟)。
iterations
number | string
1
设置动画执行的次数。
number表示固定次数,Infinity枚举表示无限次数播放。
direction
string
normal
指定动画的播放模式:
normal:动画正向循环播放;
reverse:动画反向循环播放;
alternate:动画交替循环播放,奇数次正向播放,偶数次反向播放;
alternate-reverse:动画反向交替循环播放,奇数次反向播放,偶数次正向播放。
fill
string
none
指定动画开始和结束的状态:
none:在动画执行之前和之后都不会应用任何样式到目标上。
forwards:在动画结束后,目标将保留动画结束时的状态(在最后一个关键帧中定义)。
backwards6+:动画将在animation-delay期间应用第一个关键帧中定义的值。当animation-direction为"normal"或"alternate"时应用from关键帧中的值,当animation-direction为"reverse"或"alternate-reverse"时应用to关键帧中的值。
both:动画将遵循forwards和backwards的规则,从而在两个方向上扩展动画属性。
keyframes 属性说明。
属性
类型
说明
frames
Array
用于设置动画样式的对象列表。Style类型说明请见变2 Style类型说明。
Style类型说明。
参数
类型
默认值
说明
width
number
-
动画执行过程中设置到组件上的宽度值
height
number
-
动画执行过程中设置到组件上的高度值
backgroundColor
none
动画执行过程中设置到组件上的背景颜色
opacity
number
1
设置到组件上的透明度(介于0到1之间)。
backgroundPosition
string
-
格式为”x y“,单位为百分号或者px。
第一个值是水平位置,第二个值是垂直位置
如果仅规定了一个值,另一个值为50%。
transformOrigin
string
‘center center’
变换对象的中心点。
第一个参数表示x轴的值,可以设置为left、center、right、长度值或百分比值。
第二个参数表示y轴的值,可以设置为top、center、bottom、长度值或百分比值。
transform
Transform
-
设置到变换对象上的类型
offset
number
-
-offset值(如果提供)必须在0.0到1.0(含)之间,并以升序排列。
-若只有两帧,可以不填offset。
-若超过两帧,offset必填。
animation对象方法说明。
方法
参数
说明
play
-
组件播放动画
finish
-
组件完成动画
pause
-
组件暂停动画
cancel
-
组件取消动画
reverse
-
组件倒播动画
代码实现
1、html 部分
2、css 部分
.wrap {justify-content: center;align-items: center;flex-direction: column;width: 100%;height: 100%;background-color: #dce6f2;}.letter{height: 450px;position: relative;top: 0px;}.envelopeHead {position: absolute;bottom: 250px;left: 15px;width: 330px;height: 200px;z-index: 1;}.envelope{bottom: 150px;position: absolute;left: 15px;width: 330px;height: 200px;z-index: 3;}.paper{position: absolute;width: 290px;left: 35px;justify-content: flex-start;background-color: #f7f2ec;bottom: 150px;z-index: 2;flex-direction: column;padding: 0 10px;}.title{font-size: 26px;text-shadow: 0 1px 0 #ede8d9;height:60px;width: 100%;}.content{font-size: 26px;text-shadow: 0 1px 0 #ede8d9;width: 100%;line-height:40px;}3、js 部分
import prompt from '@system.prompt';export default {data: {title: "致各位小伙伴:",content: "",message: "展信悦!欢迎大家来到Harmony OS社区!",headerBottom: 240,paperBottom: 150,envelopeBottom: 150,paperHeight: 170,animation: '',animation2: '',animation3: '',number: 1},onInit() {},onShow() {var options = {duration: 150,easing: 'ease-in-out',delay: 0,fill: 'forwards',iterations: 2,direction: 'normal',};var frames = [{transform: {translate: '0px 120px'},opacity: 1.0,offset: 1.0,height: '350px','bottom': 0}];var framesHead = [{transform: {translate: '0px 120px'},opacity: 1.0,offset: 1.0,}];var framesEnvelope = [{transform: {translate: '0px 120px'},opacity: 1.0,offset: 1.0,}];this.animationPaper = this.$element('paper').animate(frames, options);this.animationHead = this.$element('envelopeHead').animate(framesHead, options);this.animationEnvelope = this.$element('envelope').animate(framesEnvelope, options);},fold() {// 判断是否是展开信纸if (this.number % 2 === 1) {// 展开信纸this.animationPaper.play();this.animationHead.play();this.animationEnvelope.play();for (var index = 0; index < 8; index++) {this.content += " "}var num = 0var timer = setInterval(() => {if (num < this.message.length) {this.content += this.message[num]num++}else{this.timer = null;}}, 150)} else {// 收回信纸this.animationPaper.cancel();this.animationHead.cancel();this.animationEnvelope.cancel();this.content = "";}this.number++}}总结:
该篇是通过鸿蒙动画实现的一个小练习,目前我们已经可以借助各种特效功能把实体产品的操作体验模拟到网页上,使得页面看起来更加人性化,更具亲和力。
想了解更多关于开源的内容,请访问:
51CTO开源基础软件社区
https://ost.51cto.com。
责任编辑:jianghua 来源:51CTO开源基础软件社区 ArkUI信件弹出推荐系统
微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载
语言:中文版系统大小:5.13GB系统类型:Win11微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Win11 64位 Office办公版(免费)优化 1、保留 Edge浏览器。 2、隐藏“操作中心”托盘图标。 3、保留常用组件(微软商店,计算器,图片查看器等)。 5、关闭天气资讯。
Win11 21H2 官方正式版下载_Win11 21H2最新系统免激活下载
语言:中文版系统大小:4.75GB系统类型:Win11Ghost Win11 21H2是微软在系统方面技术积累雄厚深耕多年,Ghost Win11 21H2系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Ghost Win11 21H2是微软最新发布的KB5019961补丁升级而来的最新版的21H2系统,以Windows 11 21H2 22000 1219 专业版为基础进行优化,保持原汁原味,系统流畅稳定,保留常用组件
windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载
语言:中文版系统大小:5.31GB系统类型:Win11windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载,微软win11发布快大半年了,其中做了很多次补丁和修复一些BUG,比之前的版本有一些功能上的调整,目前已经升级到最新版本的镜像系统,并且优化了自动激活,永久使用。windows11中文版镜像国内镜像下载地址微软windows11正式版镜像 介绍:1、对函数算法进行了一定程度的简化和优化
微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载
语言:中文版系统大小:5.31GB系统类型:Win11微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载,微软2022年正式推出了win11系统,很多人迫不及待的要体验,本站提供了最新版的微软Windows11正式版系统下载,微软windows11正式版镜像 是一款功能超级强大的装机系统,是微软方面全新推出的装机系统,这款系统可以通过pe直接的完成安装,对此系统感兴趣,想要使用的用户们就快来下载
微软windows11系统下载 微软原版 Ghost win11 X64 正式版ISO镜像文件
语言:中文版系统大小:0MB系统类型:Win11微软Ghost win11 正式版镜像文件是一款由微软方面推出的优秀全新装机系统,这款系统的新功能非常多,用户们能够在这里体验到最富有人性化的设计等,且全新的柔软界面,看起来非常的舒服~微软Ghost win11 正式版镜像文件介绍:1、与各种硬件设备兼容。 更好地完成用户安装并有效地使用。2、稳定使用蓝屏,系统不再兼容,更能享受无缝的系统服务。3、为
雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载
语言:中文版系统大小:4.75GB系统类型:雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业的雨林木风品牌,其系统口碑得到许多人认可,积累了广大的用户群体,雨林木风是一款稳定流畅的系统,一直以来都以用户为中心,是由雨林木风团队推出的Windows11国内镜像版,基于国内用户的习惯,做了系统性能的优化,采用了新的系统
雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO
语言:中文版系统大小:5.91GB系统类型:Win7雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO在系统方面技术积累雄厚深耕多年,加固了系统安全策略,雨林木风win7旗舰版系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。win7 32位旗舰装机版 v2019 05能够帮助用户们进行系统的一键安装、快速装机等,系统中的内容全面,能够为广大用户
番茄花园Ghost Win7 x64 SP1稳定装机版2022年7月(64位) 高速下载
语言:中文版系统大小:3.91GB系统类型:Win7欢迎使用 番茄花园 Ghost Win7 x64 SP1 2022.07 极速装机版 专业装机版具有更安全、更稳定、更人性化等特点。集成最常用的装机软件,集成最全面的硬件驱动,精心挑选的系统维护工具,加上独有人性化的设计。是电脑城、个人、公司快速装机之首选!拥有此系统
相关文章
- 32位 win7下装win7 64位双系统图文详细教程图解
- Win10输入法提示“已禁用IME”,本文教您Win10输入法提示“已禁用IME”怎样处理
- HD4000相当于什么显卡?
- 阿里旺旺登陆与在线状态怎样设置_其它聊天
- 电脑可以远程重装系统?远程重装系统教程
- Win7安装显卡驱动提示“NVIDIA安装程序失败”如何解决?
- 两步骤巧妙处理U盘循环冗余出错
- 电脑win7开始菜单没有运行公司win7系统开始菜单没有运行命令怎么办?
- Xshell用SSH连接ubuntu总掉线怎么办?
- 微信企业版(企业微信)有啥技巧?_微信
- epicgta5简体中文怎样设置_epicgta5简体中文设置办法(图文)
- Win8蓝屏故障0x000000c2的处理办法
- Win8进程System.exe磁盘占用100%如何应对?
- win7系统怎么卸载自动安装的无效设备驱动
- 无限申请QQ号的绝招_腾讯QQ
- 爱拍原创APP怎么发布评论?爱拍原创APP发布评论的方法
- win7一键还原,本文教您win7怎样一键还原系统
- 微信9.9元电影票怎样买_微信
热门系统
- 1华硕笔记本&台式机专用系统 GhostWin7 32位正式旗舰版2018年8月(32位)ISO镜像下载
- 2深度技术 Windows 10 x86 企业版 电脑城装机版2018年10月(32位) ISO镜像免费下载
- 3电脑公司 装机专用系统Windows10 x86喜迎国庆 企业版2020年10月(32位) ISO镜像快速下载
- 4雨林木风 Ghost Win7 SP1 装机版 2020年4月(32位) 提供下载
- 5深度技术 Windows 10 x86 企业版 六一节 电脑城装机版 版本1903 2022年6月(32位) ISO镜像免费下载
- 6深度技术 Windows 10 x64 企业版 电脑城装机版2021年1月(64位) 高速下载
- 7新萝卜家园电脑城专用系统 Windows10 x64 企业版2019年10月(64位) ISO镜像免费下载
- 8新萝卜家园 GhostWin7 SP1 最新电脑城极速装机版2018年8月(32位)ISO镜像下载
- 9电脑公司Ghost Win8.1 x32 精选纯净版2022年5月(免激活) ISO镜像高速下载
- 10新萝卜家园Ghost Win8.1 X32 最新纯净版2018年05(自动激活) ISO镜像免费下载
热门文章
常用系统
- 1萝卜家园系统下载_新萝卜家园Win10系统Ghost纯净专业版下载
- 2win11免激活版下载-win11免激活版中文下载
- 3电脑公司 GHOST XP SP3 经典旗舰版 V2023.03 下载
- 4深度技术 GHOSTXPSP3 元旦特别 电脑城极速装机版 2020年1月 ISO镜像高速下载
- 5Win10 64位Iso镜像文件_Win10系统下载
- 6深度技术Ghost Win8.1 x32位 特别纯净版2021年11月(免激活) ISO镜像高速下载
- 7Win7精简版下载_Win7 64位精简版办公优化版系统2023.11下载
- 8深度技术 Ghost Win10 32位 极速稳定版下载_深度技术 Ghost Win10 32位 极速镜像下载安装
- 9Win10 LTSC 2022最新版下载_Win10 LTSC 2022 X64激活版下载
- 10萝卜家园Ghost Win10 64位专业版下载_萝卜家园ghost win10 2021高速专业版下载