0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使电池出现一个会动的充电效果

OpenHarmony技术社区 来源:HarmonyOS技术社区 作者:汤志威 2022-04-12 09:17 次阅读

最近在学习 HarmonyOS 开发文档,发现 transform 样式动画感觉很有趣,于是打算用现有的方法写一个会动的充电效果。

c573cef0-b9c3-11ec-aa7f-dac502259ad0.png

如下图:
c5a2fd74-b9c3-11ec-aa7f-dac502259ad0.gif  

绘制电池轮廓

实现过程如下:首先我们使用 css 画电池,绘制一个长方形需要给这个正方形四个角增加一点点的弧度,再给电池画一个头部,只有一个电池的轮廓就出来了,我在里面增添了一点颜色方便后面观察。

首先绘制一个电池:
c5b7d9f6-b9c3-11ec-aa7f-dac502259ad0.png

然后增加个 div 来实现动画效果,这个我打算用蒙版来处理,蒙版不需要增加太多细节宽高和蓝色 div 一样就行,然后通过 overflow: hidden 来实现蒙版效果,接下来就是让白色 div 动起来就行了。

<imgsrc=“./电池遮罩.png”alt=“电池遮罩”style=“zoom:67%;”/>

电池动画效果

需要使电池出现一个充电的效果,这时候就需要使用一个让电池电量上升的一个效果,这个用平移动画就够了,如果加蒙版属性的话会更好一点。

.mask2{
position:absolute;
height:220px;
width:140px;
left:50%;
transform:translate(-50%,50%);
border-radius:15px15px5px5px;
background:linear-gradient(#7abcff,#2196F3);
overflow:hidden;
}

电池渐变:

background:linear-gradient(#7abcff,#2196F3);

蒙版效果:

overflow:hidden;

.mask3{
position:absolute;
width:150px;
height:220px;
bottom:140px;
left:50%;
transform:translate(-50%,-80);
z-index:1;
animation:down6sfast-out-linear-ininfinite;
background-color:#ffffff;
}

电池平移动画:

animation:down6sfast-out-linear-ininfinite;
/*css弹跳*/
@keyframesdown{
/*停止*/
0%{
transform:translate(0px,200px);
}
/*上升*/
10%{
transform:translate(0px,180px);
}
/*上升*/
20%{
transform:translate(0px,160px);
}
/*上升*/
30%{
transform:translate(0px,140px);
}
/*上升*/
40%{
transform:translate(0px,120px);
}
/*上升*/
50%{
transform:translate(0px,100px);
}
/*上升*/
60%{
transform:translate(0px,80px);
}
/*上升*/
70%{
transform:translate(0px,60px);
}
/*上升*/
80%{
transform:translate(0px,40px);
}
/*上升*/
90%{
transform:translate(0px,20px);
}
/*起始位*/
100%{
transform:translate(0px,0px);
}
}

百分百给的越多动画就越细腻。

拓展1

如下图:

c5c6b3fe-b9c3-11ec-aa7f-dac502259ad0.gif

如果需要使电池充电时进行旋转也是可以的,只需要把平移效果换成旋转就可以了。

.mask3{
position:absolute;
width:150px;
height:150px;
bottom:140px;
left:50%;
transform:translate(-50%,0);
z-index:1;
animation:rotate4sinfinite;
border-radius:70px63px60px66px;
background-color:#ffffff;
}

旋转动画:

animation:rotate4sinfinite;

/*css旋转*/
@keyframesrotate{
from{
transform:rotate(0deg)
}
to{
transform:rotate(360deg);
}
}

拓展2

也可以通过添加按钮来增加可改变的颜色样式,首先需要把 css 中的颜色样式给移到 js 中这样方便后面的切换,然后在 js 中写入需要替换的电池颜色样式。

c5ddf5c8-b9c3-11ec-aa7f-dac502259ad0.gif

代码如下:

class="mask1">
class="mask4">
class="mask2"value="{{qr_value}}"type="{{qr_type}}" style="background-color:{{gradualChange}};">
class="mask3"value="{{qr_value}}"type="{{qr_type}}" style="background-color:{{baseColor}};">
class="txt">电池加载色 <selectonchange="loadingColor"> for="{{load}}"value="{{$item}}">{{$item}} select>
class="txt">电池剩余色 <selectonchange="remainingColor"> for="{{remaining}}"value="{{$item}}">{{$item}} select>

data:{
baseColor:'#f0ffff',
gradualChange:'#87ceeb',
remaining:['#87ceeb','#fa8072','#da70d6','#80ff00ff','#2196F3'],
load:['#f0ffff','#ffffe0','#d8bfd8']
},

最终的效果如下图:

c5ddf5c8-b9c3-11ec-aa7f-dac502259ad0.gif

总结

这些还只是Harmony组件库中动画样式里的一小部分,如果再使用旋转加平移属性就能实现更加炫酷的动画效果,能够带来更好的视觉体验,组件库中还有着许多有趣的组件实例和详细的使用方法,掌握这些组件的使用可以使我们更好的了解和参与Harmony。

作者:汤志威

原文标题:在HarmonyOS上写一个会动的充电效果

文章出处:【微信公众号:HarmonyOS技术社区】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 充电
    +关注

    关注

    22

    文章

    1297

    浏览量

    94422
  • 电池
    +关注

    关注

    84

    文章

    10423

    浏览量

    128723
  • HarmonyOS
    +关注

    关注

    79

    文章

    1966

    浏览量

    29970

原文标题:在HarmonyOS上写一个会动的充电效果

文章出处:【微信号:gh_834c4b3d87fe,微信公众号:OpenHarmony技术社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    联想G490笔记本电池充电

    上面显示电源已接通但未充电电池可用为0,我把电池管理软件调到充到100%,我去维修站 ,换了过新电池切正常是,他们说
    发表于 06-01 10:12

    请推荐无涓流充电的锂电池充电芯片。

    般锂电池充电芯片当电池电压低于2.9V时进入涓流充电状态,充电电流只有正常的1/10.可我的电
    发表于 11-23 16:28

    充电宝的电池换了不同容量的电池出现电路板发热?请老师给讲解下,先谢谢了!

    各位老师好:我使用的充电宝的电池是3.7v的4800mAh的,使用1年多了充电宝给设备供电时间短了。正好手上有3.7v 6800mah的电池
    发表于 06-22 11:15

    电池充电器的反向电压保护

    MP1 使 MP2 脱离运行状态,因为电池电压强制充电器电容进行吸收。这使 MP2 从充电器电容器吸取电荷的能力与 MP1 使 MP2 脱
    发表于 12-02 09:18

    电池充电IC电路设计基础

    ,正是这个电压定义了电池的"空"状态。此时,仍有剩余电量,但将其拔出可能会损坏电池。对于 PbA 电池,在定义充电方法时,安培小时 (Ah) 额定值通常是
    发表于 03-08 10:49

    基于HarmonyOS实现的电池充电动画效果

    最近在学习HarmonyOS开发文档,发现transform样式动画感觉很有趣,用现有的方法写会动充电效果。实现过程
    发表于 03-28 12:02

    esp8266充电电池的问题求解

    我正在为班级创建夜灯类型的项目,它需要的功能之是便携和可充电,而无需从产品中取出
    发表于 05-15 07:32

    使用MAX8934设计简单的电池充电

    使用MAX8934锂离子电池充电器可以设计简单的电池充电器,它在
    发表于 09-11 17:08

    为什么蓄电池修复效果查询会出现负数

    为什么蓄电池修复效果查询会出现负数    《蓄电池修复效果速查》程序是以市面上常见的普通水平的蓄
    发表于 11-17 10:31 1340次阅读

    电池会动力锂电池技术协作与推广应用委员会在昆山成立

    电池会动力锂电池技术协作与推广应用委员会在昆山成立      中国电池会动力锂
    发表于 02-04 09:27 641次阅读

    设计师的指导(李锂离子)电池充电

    锂离子(李离子)电池的优势巩固了他们的地位作为便携式电子产品的主要动力源,尽管有缺点,设计师不得不限制充电速率,以避免损坏电池和创建
    发表于 05-09 09:14 7次下载
    <b class='flag-5'>一</b><b class='flag-5'>个</b>设计师的指导(李锂离子)<b class='flag-5'>电池</b>的<b class='flag-5'>充电</b>

    如何设计基于MPPT的铅酸电池充电器与BQ2031电池充电

    此应用报告旨在为用户设计基于MPPT的铅酸电池充电器与BQ2031电池充电器。本报告包含
    发表于 07-20 08:58 41次下载
    如何设计<b class='flag-5'>一</b><b class='flag-5'>个</b>基于MPPT的铅酸<b class='flag-5'>电池</b><b class='flag-5'>充电</b>器与BQ2031<b class='flag-5'>电池</b><b class='flag-5'>充电</b>器

    如何制作低成本的电池充电器?

    该电路可以对镍镉电池和镍氢电池充电,非常适合于玩具上的电池、遥控器上的电池充电。发光二极管用于指
    的头像 发表于 08-14 17:42 9591次阅读

    一个正规简单的充电器来延长电池的寿命

    正规充电器都应该含有两可调电阻,其中主管最高输出电压。找到它并旋转到底,使输出最高电压调至最低。以此种状态给
    的头像 发表于 01-25 11:48 1370次阅读

    批量制造电池总是出现单只问题的原因

    不满,后果更严重! 单独充效果还不错,但操作复杂!使用小电流过充,会好些,但直没找到比较合适的小电流过充方法!请不吝赐教!另请说明,
    发表于 11-19 16:48 416次阅读