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 相关文章推荐
javascript 从if else 到 switch case 再到抽象
Jul 17 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
Apr 07 Javascript
为JS扩展Array.prototype.indexOf引发的问题探讨及解决
Apr 24 Javascript
简单实现轮播图效果的实例
Jul 15 Javascript
Node.js查找当前目录下文件夹实例代码
Mar 07 Javascript
Node实战之不同环境下配置文件使用教程
Jan 02 Javascript
使用vue-cli创建项目的图文教程(新手入门篇)
May 02 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
May 26 jQuery
[原创]微信小程序获取网络类型的方法示例
Mar 01 Javascript
详解Vue源码学习之双向绑定
Apr 10 Javascript
vue实现的封装全局filter并统一管理操作示例
Feb 02 Javascript
vue中实现点击变成全屏的多种方法
Sep 27 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
第五节--克隆
2006/11/16 PHP
修改了一个很不错的php验证码(支持中文)
2007/02/14 PHP
使用dump函数,给php加断点测试
2013/06/25 PHP
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
网页中实现浏览器的最大,最小化和关闭按钮
2007/03/12 Javascript
FileUpload上传图片(图片不变形)
2010/08/05 Javascript
nullJavascript中创建对象的五种方法实例
2013/05/07 Javascript
json数据的列循环示例
2013/09/06 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
2016/01/12 Javascript
Ubuntu系统下Angularjs开发环境安装
2016/09/01 Javascript
Vuejs第十篇之vuejs父子组件通信
2016/09/06 Javascript
如何制作幻灯片(代码分享)
2017/01/06 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
vuejs实现下拉框菜单选择
2020/10/23 Javascript
解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况
2020/10/30 Javascript
python修改注册表终止360进程实例
2014/10/13 Python
分享一下如何编写高效且优雅的 Python 代码
2017/09/07 Python
python+django加载静态网页模板解析
2017/12/12 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
python实现复制大量文件功能
2019/08/31 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
在Python中实现字典反转案例
2020/12/05 Python
美国最顶级的精品店之一:Hampden Clothing
2016/12/22 全球购物
星空联盟C# .net笔试题
2014/12/05 面试题
信息管理专业推荐信
2013/10/29 职场文书
心理健康心得体会
2014/01/02 职场文书
2014年幼儿园老师工作总结
2014/12/05 职场文书
离婚纠纷代理词
2015/05/23 职场文书
十七岁的单车观后感
2015/06/12 职场文书
mysql如何配置白名单访问
2021/06/30 MySQL
Python MNIST手写体识别详解与试练
2021/11/07 Python
MySQL日期时间函数知识汇总
2022/03/17 MySQL
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js
Golang jwt身份认证
2022/04/20 Golang