js+HTML5 canvas 实现简单的加载条(进度条)功能示例


Posted in Javascript onJuly 16, 2019

本文实例讲述了js+HTML5 canvas 实现简单的加载条(进度条)功能。分享给大家供大家参考,具体如下:

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8">
    <title>3water.com canvas实现加载条动画</title>
  </head>
  <body>
    <canvas id="loadingProgressCanvas"></canvas>
    <script>
      /*
       * 获取canvas, canvas本身没有画图能力,相当于一个画布,提供绘制图形的地方
       * document.getElementsByTagName("canvas")[0]
       * document.querySelector("canvas")/document.querySelector("#loadingProgressCanvas")
       * document.querySelectorAll("canvas")[0]
       */
      var loadingProgressCanvas = document.getElementById("loadingProgressCanvas");
      var ctx = loadingProgressCanvas.getContext("2d"); // 获取绘制图形的对象(画笔)
      drawFirst(); // 绘制初始状态
      var progress = 0; // 定义进度
      drawProgress(); // 绘制初始进度
      // 定义定时器, 100ms钟绘制5%
      var timer = setInterval("drawProgress()", 100);
      // 绘制初始状态
      function drawFirst() {
        ctx.fillStyle="#0000ff"; // 定义画笔颜色, 重新绘制已经加载的进度条
        /*
         * 定义矩形(左上角x/y左边,宽高)
         */
        ctx.rect(0, 0, 200, 30);
        ctx.stroke(); // 绘制定义好的矩形路径
        ctx.fillStyle="#0000ff"; // 定义画笔颜色, 重新绘制已经加载的进度条
      }
      // 绘制进度条
      function drawProgress() {
        if(progress == 200) {
          progress = 0;
          ctx.clearRect(0, 0, 200, 30); // 清楚之前的绘制
        } else {
          ctx.moveTo(progress, 0); // 移动到上一次绘制的终点,准备绘制下一次的进度
          ctx.fillRect(progress, 0, 10, 30); // 200 * 0.05
          progress += 10;
        }
      }
    </script>
  </body>
</html>

运行结果:

js+HTML5 canvas 实现简单的加载条(进度条)功能示例

感兴趣的朋友可使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试一下运行效果。

更多关于JavaScript相关内容还可查看本站专题:《JavaScript+HTML5特效与技巧汇总》、《JavaScript图形绘制技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
js打印纸函数代码(递归)
Jun 18 Javascript
理解Javascript_02_理解undefined和null
Oct 11 Javascript
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
Jan 12 Javascript
JS.findElementById()使用介绍
Sep 21 Javascript
关于jquery中全局函数each使用介绍
Dec 10 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
Jan 07 Javascript
JavaScript中对象property的删除方法介绍
Dec 30 Javascript
vue父子组件的数据传递示例
Mar 07 Javascript
js获取当前周、上一周、下一周日期
Mar 19 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
Nov 30 Javascript
vue中$nextTick的用法讲解
Jan 17 Javascript
JavaScript DOM常用操作代码汇总
Jul 03 Javascript
微信小程序-API接口安全详解
Jul 16 #Javascript
jquery实现垂直无限轮播的方法分析
Jul 16 #jQuery
JavaScript解析JSON数据示例
Jul 16 #Javascript
微信小程序 Storage更新详解
Jul 16 #Javascript
微信小程序实现张图片合成为一张并下载
Jul 16 #Javascript
JQuery实现简单的复选框树形结构图示例【附源码下载】
Jul 16 #jQuery
JS实现的排列组合算法示例
Jul 16 #Javascript
You might like
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
php模板之Phpbean的目录结构
2008/01/10 PHP
phpMyAdmin2.11.6安装配置方法
2008/08/24 PHP
php中定时计划任务的实现原理
2013/01/08 PHP
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
PHP MVC框架skymvc支持多文件上传
2016/05/26 PHP
搭建自己的PHP MVC框架详解
2017/08/16 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
IE6下js通过css隐藏select的一个bug
2010/08/16 Javascript
关于document.cookie的使用javascript
2010/10/29 Javascript
利用jQuery接受和处理xml数据的代码(.net)
2011/03/28 Javascript
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
Javascript Objects详解
2014/09/04 Javascript
自己动手手写jQuery插件总结
2015/01/20 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
2018/10/10 jQuery
json 带斜杠时如何解析的实现
2019/08/12 Javascript
[09:13]2014DOTA2国际邀请赛 中国区预选赛coser表演
2014/05/23 DOTA
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
总结用Pdb库调试Python的方式及常用的命令
2016/08/18 Python
python selenium 对浏览器标签页进行关闭和切换的方法
2018/05/21 Python
Python实现的根据IP地址计算子网掩码位数功能示例
2018/05/23 Python
python批量从es取数据的方法(文档数超过10000)
2018/12/27 Python
迪卡侬印度官网:购买所有体育用品
2017/06/24 全球购物
Kate Spade美国官网:纽约新兴时尚品牌,以包包闻名于世
2017/11/09 全球购物
Charlotte Tilbury澳大利亚官网:英国美妆品牌
2018/10/05 全球购物
Public Desire美国/加拿大:全球性的在线鞋类品牌
2018/12/17 全球购物
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
应聘收银员个人的求职信
2013/11/30 职场文书
计算机专业职业规划
2014/02/28 职场文书
人大调研汇报材料
2014/08/14 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
先进教师个人总结
2015/02/11 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
python APScheduler执行定时任务介绍
2022/04/19 Python
在python中读取和写入CSV文件详情
2022/06/28 Python