当前位置: 首页 > 科技观察

OpenHarmony-CSS实现奔跑的小熊_0

时间:2023-03-20 17:19:43 科技观察

了解更多开源请访问:51CTO开源基础软件社区https://ost.51cto.com前言最近学习OpenHarmony开发相关知识,而动画是一个用的比较多的属性,学习起来也比较有趣。在前端方面,使用动画可以在效果展示的时候给人眼前一亮的感觉。项目描述工具版本:DevEcoStudio3.0Beta3SDK版本;3.1.5.5主要用到的知识:动画,@keyframes官方API链接:动画效果效果展示的实现原理是基于css动画动画的相关知识,通过三个div(小熊,黑山背景,雪山背景)进行相应的动画效果处理,最终呈现出小熊在雪山奔跑的效果。实现过程中使用的官方API1和动画风格。名称类型默认值描述animation6+string0sease0s1normalnonerunningnone格式:duration|计时功能|延迟|迭代次数|方向|填充模式|/delay按照它们出现的顺序来解决。animation-fill-modestringnone指定动画的开始和结束状态:none:在执行动画之前或之后不会对目标应用任何样式。forwards:动画结束后,目标会保持动画结束时的状态(定义在最后一个关键帧)。backwards6+:动画将在动画延迟期间应用第一个关键帧中定义的值。当动画方向为“正常”或“交替”时应用从关键帧中的值,当动画方向为“反向”或“交替反转”时应用关键帧中的值。both6+:动画会遵循前进和后退的规则,从而在两个方向扩展动画属性。动画迭代计数|infinite1定义了动画播放的次数,默认播放一次,设置为infinite可以无限次播放。animation-timing-functionstringease描述动画执行的速度曲线,用于使动画更流畅。选项有:linear:表示动画的速度从头到尾是一样的。ease:表示动画以低速开始,然后加速,结束前减速,cubic-bezier(0.25,0.1,0.25,1.0)。ease-in:表示动画以低速开始,cubic-bezier(0.42,0.0,1.0,1.0)。ease-out:表示动画以低速结束,cubic-bezier(0.0,0.0,0.58,1.0)。ease-in-out:表示动画以低速开始和结束,cubic-bezier(0.42,0.0,0.58,1.0)。friction:阻尼曲线,cubic-bezier(0.2,0.0,0.2,1.0)。极端减速:陡峭的曲线,三次贝塞尔曲线(0.0,0.0,0.0,1.0)。sharp:sharp曲线,cubic-bezier(0.33,0.0,0.67,1.0)。rhythm:节奏曲线,cubic-bezier(0.7,0.0,0.2,1.0)。smooth:平滑曲线,三次贝塞尔曲线(0.4,0.0,0.4,1.0)。cubic-bezier:在三次贝塞尔函数中定义动画变化过程,输入参数的x和y值必须在0-1之间。步骤:步进曲线6+。语法:步骤(数字[,结束|开始]);必须设置number,支持的类型为正整数。第二个参数是可选的,表示在每个区间的开始或结束时发生阶跃变化。支持设置结束或开始,默认值为结束。2.@keyframes属性说明。名称类型默认值描述background-color-执行动画后应用到组件的背景色。opacitynumber1动画执行后应用于组件的不透明度值,取值在0到1之间,默认为1。width-动画执行后应用于组件的宽度值。height-执行动画后应用于组件的高度值。transformstring-定义要应用于组件的转换类型,请参见表1。<百分比>|<长度>字符串|<百分比>|50%50%背景图像位置。单位支持百分比和px,第一个值是水平位置,第二个值是垂直位置。如果只设置一个值,则另一个为50%。第一个字符串的可选值为:left|中心|对,第二个字符串的可选值为:top|中心|底部。例子:background-position:200px30%background-position:100pxtopbackground-position:centercenter第一步:做一只熊,让熊自己跑效果展示:Hml部分:

css部分:设置小熊的图片和对应的尺寸,然后添加对应的动画效果。.bear{位置:绝对;z-指数:2;宽度:200px;高度:100px;左:300px;顶部:250px;背景图像:url(./imgs/xiong.png);动画:熊跑1秒;-填充模式:转发;动画迭代计数:无限;animation-timing-function:steps(8);}/*小熊奔跑效果*/@keyframesbearRun{0%{background-position:00;}100%{背景位置:-1600px0;}}第二步:制作黑色山峰背景渲染:csspart:.blackHill{position:absolute;z-索引:0;宽度:100%;高度:536px;背景图像:url(./imgs/fjo.png);动画:hillMove30s;不透明度:0.7;动画计时函数:线性;animation-iteration-count:infinite;}/*熊移动效果*/@keyframesbearMove{0%{top:80%;左:0;}100%{顶部:80%;左:50%;转换:translateX(-50%);}}/*黑山背景动画*/@keyframeshillMove{0%{background-position:00;}100%{坝ckground-position:-3840px0;}}第三步:制作雪山效果展示:css部分:.whiteHill{position:absolute;z-索引:1;顶部:180px;宽度:100%;高度:339px;背景图像:url(./imgs/dd.png);动画:hillMove30s;动画计时函数:线性;animation-iteration-count:infinite;}/*制作雪山移动效果,生动*/@keyframeshillMove{0%{background-position:00;}100%{背景位置:-3840px0;}}实现最终效果:css部分:/*定位小熊跑动的位置在一个固定的范围内,小熊的图片长度恰好是1600像素*/@keyframesbearRun{0%{background-position:00;}100%{背景位置:-1600px0;}}/*设置小熊从左到右跑的距离*/@keyframesbearMove{0%{top:300px;左:0;}100%{顶部:300px;左:300px;转换:translateX(100px);}}用到的材料:总结一下这篇文章是我学习鸿蒙动画API的理解练习之一,也是比较常见的动画。能在鸿蒙实现就更好了。今后还需要继续努力。了解更多开源内容请访问:51CTO开源基础软件社区https://ost.51cto.com。