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中对对层的控制
Dec 29 Javascript
uploadify在Firefox下丢失session问题的解决方法
Aug 07 Javascript
Javascript玩转继承(一)
May 08 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
Aug 17 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
Oct 28 Javascript
详解本地Node.js服务器作为api服务器的解决办法
Feb 28 Javascript
在vue中获取token,并将token写进header的方法
Sep 26 Javascript
Element ui 下拉多选时新增一个选择所有的选项
Aug 21 Javascript
JS多个表单数据提交下的serialize()应用实例分析
Aug 27 Javascript
JS实现网页烟花动画效果
Mar 10 Javascript
JavaScript实现拖拽效果
Mar 16 Javascript
JS实现图片幻灯片效果代码实例
May 21 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
一个很不错的PHP翻页类
2009/06/01 PHP
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
2010/12/29 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
使用php-timeit估计php函数的执行时间
2015/09/06 PHP
PHP实现的数组和XML文件相互转换功能示例
2018/03/15 PHP
javascript实现划词标记+划词搜索功能
2007/03/06 Javascript
JsDom 编程小结
2011/08/09 Javascript
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
2016/02/02 Javascript
JS &amp; JQuery 动态添加 select option
2016/06/08 Javascript
ajax请求data遇到的问题分析
2018/01/18 Javascript
使用JS实现导航切换时高亮显示的示例讲解
2018/08/22 Javascript
webpack优化的深入理解
2018/12/10 Javascript
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
JS控制只能输入数字并且最多允许小数点两位
2019/11/24 Javascript
antd中table展开行默认展示,且不需要前边的加号操作
2020/11/02 Javascript
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python批量提交沙箱问题实例
2014/10/08 Python
Python set集合类型操作总结
2014/11/07 Python
Python线性回归实战分析
2018/02/01 Python
Python实现KNN(K-近邻)算法的示例代码
2019/03/05 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
2020/12/09 Python
浅析几个CSS3常用功能的写法
2014/06/05 HTML / CSS
详解HTML5 LocalStorage 本地存储
2016/12/23 HTML / CSS
《狮子和兔子》教学反思
2014/03/02 职场文书
保卫钓鱼岛口号
2014/06/20 职场文书
领导干部作风建设自查报告
2014/10/23 职场文书
2014年公务员转正工作总结
2014/11/07 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
团支部组织委员竞选稿
2015/11/21 职场文书
描述鲁迅的名言整理,一生受用
2019/08/08 职场文书
导游词之阆中古城
2019/12/23 职场文书
Sleuth+logback 设置traceid 及自定义信息方式
2021/07/26 Java/Android
2022年显卡天梯图(6月更新)
2022/06/17 数码科技