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

HarmonyOS-实现电池充电动画效果

时间:2023-03-16 19:04:33 科技观察

更多内容请访问:与华为官方共建的鸿蒙科技社区https://ost.51cto.com前言最近而研究HarmonyOS开发文档,发现transform风格的动画很有意思,就用现有的方法写了一个移动的充电效果。实现过程1.画出电池的轮廓首先,我们用css画出电池。画一个长方形,我们需要在正方形的四个角上加上一点弧度,然后画一个电池头。只有电池的轮廓出来了。我在里面加了一点颜色供以后查看。先画一个电池。2.添加一个div来实现动画效果。我打算用面具来解决这个问题。面具不需要添加太多细节。宽度和高度与蓝色div相同。然后使用overflow:hidden来实现遮罩效果。下一步就是让白色的div移动。。二、电池动画效果1、需要让电池出现充电效果。这时候就需要使用一个效果来增加电池电量了。这足以使用翻译动画。如果加上mask属性就更好了。.mask2{位置:绝对;高度:220px;宽度:140px;左:50%;转换:翻译(-50%,50%);边框半径:15px15px5px5px;背景:线性渐变(#7abcff,#2196F3);溢出:隐藏;}电池梯度。背景:线性渐变(#7abcff,#2196F3);面具效果。溢出:隐藏;.mask3{位置:绝对;宽度:150px;高度:220px;底部:140px;左:50%;转换:翻译(-50%,-80);z-索引:1;动画:向下6s快出-线性-进无限;background-color:#ffffff;}电池平移动画。动画:向下6s快出-线性-进无限;/*cssbounce*/@keyframesdown{/*停止*/0%{transform:translate(0px,200px);}/*上升*/10%{transform:translate(0px,180px);}/*up*/20%{transform:translate(0px,160px);}/*up*/30%{transform:translate(0px,140px);}/*up*/40%{transform:translate(0px,120px);}/*up*/50%{transform:translate(0px,100px);}/*up*/60%{transform:translate(0px,80px);}/*up*/70%{transform:translate(0px,60px);}/*向上*/80%{transform:translate(0px,40px);}/*up*/90%{transform:translate(0px,20px);}/*起始位置*/100%{transform:translate(0px,0px);}}给100%的越多,动画就会越细腻。3、拓展11、充电时如果需要旋转电池,只需要将平移效果换成旋转即可。.mask3{位置:绝对;宽度:150px;高度:150px;底部:140px;左:50%;转换:翻译(-50%,0);z-索引:1;动画:无限旋转4s;:70px63px60px66px;背景色:#ffffff;}旋转动画。animation:rotate4sinfinite;/*cssrotation*/@keyframesrotate{from{transform:rotate(0deg)}到{transform:rotate(360deg);}}4.扩展2也可以通过增加按钮来增加改变颜色样式,首先需要将css中的颜色样式移到js中,方便后续切换,然后在js中编写需要更换的电池颜色样式.

电池加载颜色{{$item}}
电池垫余色{{$item}}data:{baseColor:'#f0ffff',gradualChange:'#87ceeb',剩余:['#87ceeb','#fa8072','#da70d6','#80ff00ff','#2196F3'],load:['#f0ffff','#ffffe0','#d8bfd8']},最终效果总结这些只是鸿蒙组件库中动画样式的一小部分,如果使用旋转和平移属性来实现更酷的动画效果可以带来更好的视觉体验。组件库中有很多有趣的组件示例和详细的使用方法。掌握这些组件的使用,可以帮助我们更好的理解和参与鸿蒙梦。更多信息请访问:与华为官方共建的鸿蒙技术社区https://ost.51cto.com