利用canvas实现的加载动画效果实例代码


Posted in Javascript onJuly 05, 2017

前言

以前在浏览文章时,看到过一个Android的加载效果,觉得挺好看的,于是自己就模仿了一个。下面话不多说,我们直接来看看详细的介绍吧。

运行效果图

利用canvas实现的加载动画效果实例代码

分析下这个效果:

      1.可以把这四个方块标号

      2.这个运动效果其实只用分解为两段动画,一段是上下移动,一段是左右移动。

示例代码:

/*核心代码*/
/*分析动画,其实动画只有两次的执行*/
   var for_index = 1;//记录当前执行动画的序列
   var interval = setInterval(function(){
    if(for_index == 1){
     if(squre4.x == origin_squre.x - step * 2){
      for_index = 2;
     }else{
      squre2.x -= 2;
      squre2.y += 1;

      squre4.x += 2;
      squre4.y -= 1;
     }
    }else if(for_index == 2){
     if(squre4.x == origin_squre.x){
      for_index = 1;

      /*重置方块位置信息到初始值*/
      init_squre(origin_squre.x,origin_squre.y);

     }else{
      squre3.x -= 2;
      squre3.y -= 1;

      squre2.x -= 2;
      squre2.y -= 1;

      squre4.x += 2;
      squre4.y += 1;

      squre1.x += 2;
      squre1.y += 1;
     }
    }
    ctx.clearRect(0,0,canvas.width,canvas.height);
    /*重绘方块*/
    if(for_index == 1 || for_index == 2){
     draw_squre(squre4);
     draw_squre(squre1);
     draw_squre(squre3);
     draw_squre(squre2);
    }

    /*重绘阴影*/
    get_shaow_pos();
    for(var i in shaow_begin){
     draw_shaow(shaow_begin[i]);
    }
   },1000 / 24);

由于在高分屏下绘制有点模糊,于是引入了hidpi-canvas.js

github地址:https://github.com/lzuntalented/lzLoading

本地下载:http://xiazai.3water.com/201707/yuanma/lzLoading(3water.com).rar

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
extJs 常用到的增,删,改,查操作代码
Dec 28 Javascript
js返回上一页并刷新代码整理
Dec 21 Javascript
JavaScript作用域与作用域链深入解析
Dec 06 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
Dec 28 Javascript
js全选按钮的实现方法
Nov 17 Javascript
老司机带你解读jQuery插件开发流程
May 16 Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
Oct 13 Javascript
Vue-resource实现ajax请求和跨域请求示例
Feb 23 Javascript
Jquery获取radio选中的值
May 05 jQuery
一个有意思的鼠标点击文字特效jquery代码
Sep 23 jQuery
基于Vue实现拖拽效果
Apr 27 Javascript
js replace 全局替换的操作方法
Jun 12 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
Jul 05 #Javascript
vue一步步实现alert功能
Jul 05 #Javascript
详解vue.js移动端导航navigationbar的封装
Jul 05 #Javascript
JS实现移动端按首字母检索城市列表附源码下载
Jul 05 #Javascript
webpack教程之webpack.config.js配置文件
Jul 05 #Javascript
webstorm添加vue.js支持的方法教程
Jul 05 #Javascript
vue.js实现刷新当前页面的方法教程
Jul 05 #Javascript
You might like
[FAQ]PHP中的一些常识:类篇
2006/10/09 PHP
ThinkPHP中的常用查询语言汇总
2014/08/22 PHP
php插入排序法实现数组排序实例
2015/02/16 PHP
PHP读取Excel类文件
2017/05/15 PHP
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
jquery.simple.tree插件 更简单,兼容性更好的无限树插件
2010/09/03 Javascript
yepnope.js使用详解及示例分享
2014/06/23 Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
2016/09/03 Javascript
微信小程序 textarea 详解及简单使用方法
2016/12/05 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
微信小程序实现图片上传功能实例(前端+PHP后端)
2018/01/10 Javascript
JavaScript简单实现关键字文本搜索高亮显示功能示例
2018/07/25 Javascript
微信小程序支付前端源码
2018/08/29 Javascript
微信小程序实现授权登录
2019/05/15 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
python对字典进行排序实例
2014/09/25 Python
在Python程序中操作文件之isatty()方法的使用教程
2015/05/24 Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
2017/07/06 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
python实现屏保计时器的示例代码
2018/08/08 Python
python实现爬山算法的思路详解
2019/04/09 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
2019/05/03 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
np.dot()函数的用法详解
2020/01/17 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
2020/05/22 Python
PyCharm MySQL可视化Database配置过程图解
2020/06/09 Python
DELPHI面试题研发笔试试卷
2015/11/08 面试题
医学类导师推荐信范文
2013/11/19 职场文书
大学生安全责任书
2014/07/25 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
市场督导岗位职责
2015/04/10 职场文书
毕业论文答辩稿范文
2015/06/23 职场文书
红白喜事主持词
2015/07/06 职场文书
申请吧主发表的感言
2015/08/03 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书