实例讲解canvas实现圆形进度条动画

这篇文章主要介绍了canvas实现圆形进度条动画的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

本文介绍了canvas实现圆形进度条动画,分享给大家,具体如下:

先给大家看看效果图,然后在上代码。

实例讲解canvas实现圆形进度条动画

进度条动画

1. canvas的HTML部分很简单就一个canvas标签

canvas画布的宽高是自身的属性,要在行间样式设置,若是在style设置宽高会使你画的图片变形。

70%

登录后复制

2.画布的js代码

主要思路:效果图中是由三个圆组成的,最外层是一个有黑边的大圆,里面一个改变进度条进度的圆和一个现实百分比的圆。

注意:每画一个圆都要新建一个图层,这样可以单独设置每个图层的样式,之间不相互影响,就像ps的图层一样,一个完整的设计稿都是很多图层组成的。

var canvas = document.getElementById("mycanvas");var context = canvas.getContext("2d");function draw(i){// 大圆框context.beginPath();context.lineWidth = 1;context.arc(50,50,46,0,Math.PI*2);context.strokeStyle = "grey";context.stroke();// 大圆context.beginPath();var grd = context.createLinearGradient(15,15,80,80);grd.addColorStop(0,"red");grd.addColorStop(0.5,"yellow");grd.addColorStop(1,"blue");context.arc(50,50,38,0,Math.PI*2*(i/100));context.lineWidth = 16;context.strokeStyle = grd;context.stroke();// context.fillStyle = grd;// context.fill();// 小圆context.beginPath();context.arc(50,50,30,0,Math.PI*2);context.lineWidth = 1;context.strokeStyle = "grey";context.stroke();context.fillStyle = "white";context.fill();// 字context.beginPath();context.textBaseline = "middle";context.textAlign = "center";context.font = "20px Arial";context.fillStyle = "black";context.fillText(i+"%",50,50);}

登录后复制

3. 使用计时器来刷新画布,达到进度条的效果

使用context.clearRect()方法来清空画布的

var i = 0;var progress = parseInt(canvas.innerHTML);// console.log(progress);var timer = setInterval(function(){if(i >= progress){clearInterval(timer);}context.clearRect(0,0,canvas.width,canvas.height);draw(i);i++;},50);

登录后复制

相关推荐:

css3实现圆形进度条的方法

微信小程序实现圆形进度条方法介绍

有关圆形进度条基础入门教程推荐

以上就是实例讲解canvas实现圆形进度条动画的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2900822.html

(0)
上一篇 2025年3月11日 00:02:50
下一篇 2025年3月4日 21:41:52

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 两种移动端rem布局实现方法

    据了解,现在有两种rem布局的样式控制,其中一种是通过css的媒体查询,另外一种是通过引入js来控制,这两种方法各有各的优点,但是我还是喜欢用引入js的方法来实现rem布局,尽管现在市面上大多数都在使用css媒体查询的方式实现,在此我就将这…

    编程技术 2025年3月11日
    200
  • canvas的视频遮罩插件实例分享

    为一个视频添加一个覆盖物,从而挡住视频某区域,在视频的某一时间段,比如第10到第20分钟不显示划定的这块区域。应用场景包括 遮挡卫视图标 、 遮挡视频右下角广告 、 充当马赛克等。本文主要介绍了详解基于canvas的视频遮罩插件,详细介绍了…

    编程技术 2025年3月11日
    200
  • html5 Canvas实现图片旋转

    本文主要介绍了htm5l canvas实现图片旋转的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 众所周知canvas是位图,你可以在里面渲染你要的东西,不过你只能操作canvas的属…

    2025年3月10日 编程技术
    200
  • CSS的经典三栏布局如何实现

    这次给大家带来css的经典三栏布局如何实现,实现css的经典三栏布局的注意事项有哪些,下面就是实战案例,一起来看一下。 本文介绍了CSS经典三栏布局方案,分享给大家,也给自己做个笔记,具体如下: 三栏布局,顾名思义就是两边固定,中间自适应。…

    编程技术 2025年3月10日
    200
  • css鼠标悬浮图片遮罩效果实现代码

    本文主要和大家分享css鼠标悬浮图片遮罩效果实现代码,希望能帮助到大家。 css p>p{    background: rgba(255, 255, 255, 0);    transition: background 0.3s l…

    编程技术 2025年3月10日
    200
  • 利用Canvas制作旋转的太极示例分享

    好久没动canvas了,今下午突然想回顾一下,就写了个旋转的太极,哈哈,蛮好玩的,在这里就将自己写的过程展示出来,旋转使用的css实现的,没有用canvas自己的,希望大佬们不要吐槽。本文主要和大家介绍了Canvas制作旋转的太极的示例的相…

    2025年3月10日
    200
  • 动画TAB切换怎样实现

    这次给大家带来动画TAB切换怎样实现,动画TAB切换实现的注意事项有哪些,下面就是实战案例,一起来看一下。 设计师给了一个 tab 切换的效果图。虽然是一个很小的功能,但是前端工程师在实现的时候还是有很多细节需要注意。我写了一个 demo …

    2025年3月10日
    200
  • animation动画属性直接实现轮播的方法

    这次给大家带来animation动画属性直接实现轮播的方法,animation动画属性实现轮播的注意事项有哪些,下面就是实战案例,一起来看一下。 animation简介: CSS3的animation属性可以像Flash制作动画一样,通过控…

    2025年3月10日 编程技术
    200
  • 用calc()实现响应式布局

    这次给大家带来用calc()实现响应式布局,用calc()实现响应式布局的注意事项有哪些,下面就是实战案例,一起来看一下。  REM方法 calc()从字面我们可以把他理解为一个函数function。其实calc是英文单词calculate…

    编程技术 2025年3月10日
    200
  • Bootstrap实现价格表

    这篇文章主要介绍了利用Bootstrap实现漂亮简洁的CSS3价格表效果,实现的效果非常的不错,而且能够使用不同的屏幕尺寸,需要的朋友可以参考学习,下面来一起看看吧。 前言 这是一款漂亮简洁的CSS3价格表样式,该价格表基于Bootstra…

    2025年3月10日
    200

发表回复

登录后才能评论