写一个电量组件

battery.vue

<template><div><canvas ref="mycanvas" :width="cWidth" :height="cHeight"></canvas></div>
</template><script>
export default {name: 'battery',mycanvas: null,ctx: null,myInterval: null,props: {proQuantity: {type: Number,default: 50},proIsCharge: {type: Boolean,default: false}},data () {return {cWidth: 66,cHeight: 28,jd: 0}},created () {},watch: {// 监听是否变化电量 ,如果是 做一个充电动画proIsCharge (newVal, oldVal) {console.log('======proIsCharge============', newVal)let _this = thisclearInterval(_this.myInterval)this.jd = 0if (_this.proIsCharge) {_this.myInterval = setInterval(function () {_this.drawCharge()}, 300)}}},mounted () {this.mycanvas = this.$refs.mycanvasthis.ctx = this.mycanvas.getContext('2d')this.drawBg()this.drawPath(this.proQuantity)},methods: {// 画一个背景drawBg () {this.ctx.strokeStyle = 'rgba(255,255,255,1)'this.ctx.lineWidth = 2this.ctx.strokeRect(0, 0, 60, 28)this.ctx.fillStyle = 'rgba(0,0,0,0.2)'this.ctx.fillRect(0, 0, 60, 28)this.ctx.fillStyle = 'rgba(255,255,255,1)'this.ctx.fillRect(61, 7, 6, 14)},// 根据电量画出一个块drawPath (quantity) {if (this.proIsCharge) {this.ctx.fillStyle = 'green'} else if (quantity < 20) {this.ctx.fillStyle = 'red'} else {this.ctx.fillStyle = 'green'}this.ctx.fillRect(1, 1, (60 - 2) * quantity / 100, 26)},drawCharge () {this.ctx.clearRect(0, 0, this.cWidth, this.cHeight)this.drawBg()this.jd = this.jd + 10if (this.jd > 100) {this.jd = 0}this.drawPath(this.jd)}}
}
</script><style scoped></style>

主页面引用
比较简单

<battery style=" width: 90px;height: 30px;" :proIsCharge="IsCharge" :proQuantity="batteryEnegy"></battery>

更改batteryEnegy显示电量值 充电时更改IsCharge为true

效果图

vue中用canvas画移动端电量显示 实现充电动画相关推荐

  1. vue中用canvas实现移动端手写板、电子签名功能

    html部分: js部分: css部分:

  2. 新H5中用canvas画一个数字钟表

    此文章是参考以往大牛代码,在大牛代码基础上加以更改而成. 本人暂时还是一名技术菜鸟,刚刚踏上web前端这条路才五个月,希望大牛们多多提携... 效果图如下: 话不多说,上代码: <body st ...

  3. html画圆圈原理,【已解决】HTML中用Canvas画圆圈

    折腾: [未解决]vuejs的vue-admin-template中自己手动实现画出类似电路图的控制面板图 期间,再去canvas中圆圈 如图: 希望画出大大小小的各种圆圈 包括圆圈里面还带东西的.c ...

  4. 在小程序中用canvas画一个仪表盘

    本意是打算写一个类似f2的半圆进度条,但是感觉小程序中引入太难调了,所以就自己用canvas随便画了一个实现了类似的效果. 最终效果图 wxml <view class="top-bo ...

  5. vue使用canvas画图画不出来

    使用vue做一个手势密码,相当于手机图案解锁 canvas要占全屏所以获取宽高赋值 使用canvas画图,绘制图案 代码 <template><div id="handlo ...

  6. 移动端html5手写板,Vue利用canvas实现移动端手写板的方法

    清除 保存 Canvas画板 var draw; var preHandler = function(e){e.preventDefault();} class Draw { constructor( ...

  7. canvas画奥运五环 2019/10/29

    在HbuilderX中用canvas画一个奥运五环. 先用arc画出五个圆环,画布是后画的图形在顶层,再根据圆环相互串压的顺序,新添同心圆笔画,就能画出五环相互勾连的样子了. 基本完成任务,效果简陋, ...

  8. 06.MTK关机充电动画显示

    关机充电的第一张logo: /vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/rules.mk RESOURCE_OBJ_LIS ...

  9. 移动端html5手写板,Vue+canvas实现移动端手写板步骤详解

    这次给大家带来Vue+canvas实现移动端手写板步骤详解,Vue+canvas实现移动端手写板的注意事项有哪些,下面就是实战案例,一起来看一下. 清除 保存 Canvas画板 var draw; v ...

最新文章

  1. 百度之星第一题竟然没过
  2. 安装ORACLE RAC时修改ssh端口导致CRS无法安装
  3. 简明现代魔法博客图书馆之php学习记录
  4. Linux服务名重命名
  5. 我为什么还要造轮子?欠踹?Monk.UI表单美化插件诞生记!
  6. 与时代并肩的数字创新者
  7. PyTorch基础(part8)--LSTM
  8. 联想笔记本重装系统教程
  9. Java学习笔记:文件通道(FileChannel)
  10. 【安装配置】Oracle数据库Linux系统下安装(图形界面)
  11. 什么?你的私钥泄漏了?
  12. java根据url下载文件
  13. Ubuntu下Apache+SVN搭建SVN服务多项目管理
  14. 原创 VPP使用心得(十六)静态路由添加流程
  15. 对JSP内置对象的部分总结
  16. 车牌识别-基于模板匹配
  17. java svg pdf_Java 插入SVG到PDF文档
  18. unity 截图/图片保存到手机相册
  19. Windows 如何查看主板的型号和厂家,以及支持的最大内存
  20. meo学习笔记6:VS2017+ Qt5.*配置安装过程的问题记录

热门文章

  1. 2022年主要的编程语言及应用
  2. 操作系统(二)——进程管理
  3. vue数据渲染页面数据展示出现闪烁问题
  4. 网站优化SEO工作如何快速获得网站排名呢?
  5. 2023最新SEO泛目录快速排名技术
  6. java面试题之sql语句
  7. 昨天上午去了RSSM取调档函。
  8. 高德地图广告投放产品介绍!高德地图广告开户找哪里?
  9. 『HTML5梦幻之旅』 - 炫酷的节日贺卡
  10. 埃森哲最新研究认为,全球企业高管尚未看清5G应用潜力