JS怎样做出动画效果流程进度条

这次给大家带来JS怎样做出动画效果流程进度条,JS做出动画效果流程进度条的注意事项有哪些,下面就是实战案例,一起来看一下。

当在使用流程的时候,比如有一个审核流程,有三个阶段:开始,审核中,审核成功。当在不同的阶段,做相应的进度显示,当显示时,是以动画的形式显示的。话不多说,我们开始打造吧。

    首先,我考虑的是使用canvas来打造这个控件,于是我现在demo.html里新建了一个canvas用来显示测试用,并且先预计了几个属性值,在做的过程中增增改改,最终属性如下:

   您的浏览器不支持 HTML5 canvas 标签。

登录后复制

然后开始编写相应的js文件,我将其命名为ct_progress.js。我的目的是打造一款使用者可以自由配置的显示控件,于是定义了一下可配置的属性:

var c=document.getElementById("myCanvas"); var showStr = c.getAttribute("data-show"); var showStrs = showStr.split("|"); var r = c.hasAttribute("data-r")?Number(c.getAttribute("data-r")):15; var ctx=c.getContext("2d"); var padding = c.hasAttribute("data-padding")?Number(c.getAttribute("data-padding")):10;//左右上的间隔 var space = (c.getAttribute("width")-2*r-2*padding)/(showStrs.length-1); var speed = c.hasAttribute("data-speed")?Number(c.getAttribute("data-speed")):20;//动画速度 var fillColour = c.hasAttribute("data-fill-colour")?c.getAttribute("data-fill-colour"):"#ffff00";//填充色 var fontSize = c.hasAttribute("data-font-size")?Number(c.getAttribute("data-font-size")):15;

登录后复制

属性完成,开始使用canvas使用这些属性值开始进行初始化画图:

for(var i in showStrs) {   ctx.beginPath();   ctx.fillStyle="#ffffff";   ctx.arc(r+i*space+padding,r+padding,r,0,2*Math.PI);//前面两个参数为圆心坐标,第三个为半径,第四个为起始角。第五个为结束角   ctx.fill();   if(i!=0)   {     ctx.fillRect(r+(i-1)*space+padding,r/2+padding,space,r);//前面两个左上角坐标,后面两个宽高   }   ctx.beginPath();   ctx.fillStyle="#333333";   ctx.font=fontSize+"px Georgia";//一定要指定字体否则大小没有用   ctx.fillText(showStrs[i],r+i*space-r+padding,r*2+fontSize+10+padding);//左下角为起点   ctx.stroke(); }

登录后复制

此时画出了一个静态的没有进度的流程进度条。然后为这个进度条加上显示时的动画:

var proW = 0;//进度长度 var progress = c.hasAttribute("dara-progress")?Number(c.getAttribute("dara-progress")):showStrs.length;// var showW = space*progress;//计算应该显示的进度长度 var i=0,j; var int = setInterval(function () {   //清除   //ctx.clearRect(0, 0, c.width, c.height);//不清除在原图上画了覆盖   j=i;   i = parseInt(proW/space);   if(i>j)   {     ctx.beginPath();     ctx.fillStyle=fillColour;     ctx.fillRect(r+j*space+padding,r/2+padding,space,r);//前面两个左上角坐标,后面两个宽高     //clearArc(ctx,r+j*space+padding,r+padding,r,1);//清除圆部   }   else   {     if(i=showW)   {     clearInterval(int);   }   proW+=speed; }, 150);

登录后复制

这样便完成了一个简单的带显示动画的流程进度条。最终效果如下:

JS怎样做出动画效果流程进度条

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

怎样利用JS做出引用传递与值传递

使用JS实做出加密解密操作

以上就是JS怎样做出动画效果流程进度条的详细内容,更多请关注【创想鸟】其它相关文章!

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

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

(0)
上一篇 2025年3月8日 05:33:41
下一篇 2025年3月8日 05:33:50

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

相关推荐

  • 在vue.js中如何选择baseurl的方法

    本篇文章主要介绍了vue.js根据代码运行环境选择baseurl的方法,现在分享给大家,也给大家做个参考。 配置通用的API前缀可以更好在本地通过接口代理转发获取数据、或者部署时在Nginx中做反向代理,但是项目中一旦涉及大量的需要文件上传…

    编程技术 2025年3月8日
    100
  • 后端程序员JS模块化使用说明

    这次给大家带来后端程序员JS模块化使用说明,后端程序员JS模块化使用的注意事项有哪些,下面就是实战案例,一起来看一下。 基础模式 匿名闭包 匿名闭包是很常用的代码隔离方式,声明匿名对象并立即执行。匿名函数中声明的变量和方法以及匿名函数本身不…

    编程技术 2025年3月8日
    200
  • 如何使用js获取当前时间

    这次给大家带来如何使用js获取当前时间,使用js获取当前时间的注意事项有哪些,下面就是实战案例,一起来看一下。 Date对象setDate() : 设置一个月的某一天。getFullYear() : 返回一个表示年的四位数字。getMont…

    编程技术 2025年3月8日
    200
  • 在vue.js中如何给动态绑定的radio列表做批量编辑

    下面我就为大家分享一篇vue.js给动态绑定的radio列表做批量编辑的方法,具有很好的参考价值,希望对大家有所帮助。 每个题目绑定的题目结构如下json对象,每次动态添加选项就是将其加入了vue实例的某个数组对象中: vm.options…

    2025年3月8日
    200
  • jscss基础操作总结

    这次给大家带来jscss基础操作总结,jscss基础操作的注意事项有哪些,下面就是实战案例,一起来看一下。 返回上一页: 返回上一页function goBack(){window.history.go(-1) -2即为退后2页} 登录后复…

    编程技术 2025年3月8日
    200
  • 怎样编写可自定义维护JS代码

    这次给大家带来怎样编写可自定义维护js代码,编写可自定义维护js代码的注意事项有哪些,下面就是实战案例,一起来看一下。 1.1 格式化 关于缩进层次: 我不想挑起“Tab or Space”和“2 or 4 or 6 or 8 Space”…

    编程技术 2025年3月8日
    200
  • 在JavaScript中如何复制内容到剪贴板

    最近一个活动页面中有一个小需求,用户点击或者长按就可以复制内容到剪贴板,记录一下实现过程和遇到的坑,需要的朋友可以参考下 常见方法 查了一下万能的Google,现在常见的方法主要是以下两种: 第三方库:clipboard.js原生方法:do…

    2025年3月8日
    200
  • 在angularjs数组中如何判断是否含有某个元素

    下面我就为大家分享一篇angularjs数组判断是否含有某个元素的实例,具有很好的参考价值,希望对大家有所帮助。 也就是in_array函数,判断数组中是否含有某个元素。   Array.prototype.in_array = funct…

    编程技术 2025年3月8日
    200
  • 关于JS抛出错误使用汇总

    这次给大家带来关于js抛出错误使用汇总,js抛出错误的注意事项有哪些,下面就是实战案例,一起来看一下。 在JS中抛出错误是一门艺术。摸清楚代码中哪里合适抛出错误是需要时间的。因此,一旦搞清楚了这一点,调试代码的事件将大大缩短,对代码的满意度…

    编程技术 2025年3月8日
    200
  • 在angular中如何使用json对象push到数组中的方法

    下面我就为大家分享一篇angular json对象push到数组中的方法,具有很好的参考价值,希望对大家有所帮助。 在项目中,api要求的数据格式为 $scope.data = { “name”:”zhangsan”, “Menus”: […

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论