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中的Window窗口对象
Jan 16 Javascript
Javascript中的匿名函数与封装介绍
Mar 15 Javascript
JavaScript开发Chrome浏览器扩展程序UI的教程
May 16 Javascript
angularjs封装bootstrap时间插件datetimepicker
Jun 20 Javascript
用js实现博客打赏功能
Oct 24 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
Oct 27 jQuery
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
Nov 08 Javascript
Vuex中的State使用介绍
Jan 19 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
Mar 19 Javascript
vue实现微信二次分享以及自定义分享的示例
Mar 20 Javascript
vue点击页面空白处实现保存功能
Nov 06 Javascript
Vue如何实现变量表达式选择器
Feb 18 Vue.js
微信小程序-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
PHP __autoload()方法真的影响性能吗?
2012/03/30 PHP
win7下memCache的安装过程(具体操作步骤)
2013/06/28 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
2014/12/16 PHP
PHP中substr函数字符串截取用法分析
2016/01/07 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
jquery 图片上传按比例预览插件集合
2011/05/28 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
2013/10/25 Javascript
jquery $(&quot;#variable&quot;) 循环改变variable的值示例
2014/02/23 Javascript
nodejs开发环境配置与使用
2014/11/17 NodeJs
jquery实现网页的页面平滑滚动效果代码
2015/11/02 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
2016/12/11 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
Vue 列表上下过渡效果的实例代码
2019/06/25 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
[01:16:50]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第一场 3月7日
2021/03/11 DOTA
Django 添加静态文件的两种实现方法(必看篇)
2017/07/14 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
详解Python中的type和object
2018/08/15 Python
Python判断对象是否相等及eq函数的讲解
2019/02/25 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
2019/06/21 Python
详解python中的生成器、迭代器、闭包、装饰器
2019/08/22 Python
OpenCV哈里斯(Harris)角点检测的实现
2020/01/15 Python
python给视频添加背景音乐并改变音量的具体方法
2020/07/19 Python
基于python实现坦克大战游戏
2020/10/27 Python
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
乡镇爱国卫生月活动总结
2014/06/25 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
师德先进个人材料
2014/12/20 职场文书
个人事迹材料范文
2014/12/29 职场文书
反邪教教育心得体会
2016/01/15 职场文书
如何利用Python实现n*n螺旋矩阵
2022/01/18 Python