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 相关文章推荐
IE浏览器兼容Firefox的JS脚本的代码
Oct 23 Javascript
如何使用JS获取IE上传文件路径(IE7,8)
Jul 08 Javascript
JS 实现点击a标签的时候让其背景更换
Oct 15 Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
Nov 25 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
Jun 10 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
Feb 19 Javascript
angular.js 路由及页面传参示例
Feb 24 Javascript
JS ES6中setTimeout函数的执行上下文示例
Apr 27 Javascript
关于layui 下拉列表的change事件详解
Sep 20 Javascript
Vue防止白屏添加首屏动画的实例
Oct 31 Javascript
JS实现百度搜索框关键字推荐
Feb 17 Javascript
javascript Number 与 Math对象的介绍
Nov 17 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
自己动手做一个SQL解释器
2006/10/09 PHP
PHP 自定义错误处理函数的使用详解
2013/05/10 PHP
php+ajax实现无刷新动态加载数据技术
2015/04/28 PHP
php实现中文转数字
2016/02/18 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
2016/11/05 PHP
PHP实现多图上传(结合uploadify插件)思路分析
2016/11/30 PHP
PHP substr()函数参数解释及用法讲解
2017/11/23 PHP
ThinkPHP5&amp;5.1实现验证码的生成、使用及点击刷新功能示例
2020/02/07 PHP
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
2015/08/26 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
微信小程序 toast 详解及实例代码
2016/11/09 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
Vue.js用法详解
2017/11/13 Javascript
layui select动态添加option的实例
2018/03/07 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
微信小程序之裁剪图片成圆形的实现代码
2018/10/11 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
2019/01/20 Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
2019/09/26 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
HTML5 图片悬停放大的实现代码示例
2019/12/04 HTML / CSS
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
将一个文本文件的内容按倒序打印出来
2015/01/05 面试题
工程造价自荐信
2013/10/09 职场文书
中学生学习生活的自我评价
2013/10/26 职场文书
个人评价范文分享
2014/01/11 职场文书
终止劳动合同证明书样本
2014/11/19 职场文书
政协委员个人总结
2015/03/03 职场文书
2016入党积极分子党校培训心得体会
2016/01/06 职场文书
2016年先进班集体事迹材料
2016/02/26 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
2020年个人安全保证书参考模板
2020/01/08 职场文书
详解MySQL中的主键与事务
2021/05/27 MySQL
《传颂之物 虚伪的假面》BD发售宣传CM公开
2022/04/04 日漫