利用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 相关文章推荐
JavaScript入门学习书籍推荐
Jun 12 Javascript
详细分析JavaScript函数定义
Jul 16 Javascript
基于JS代码实现导航条弹出式悬浮菜单
Jun 17 Javascript
AngularJS基础 ng-csp 指令详解
Aug 01 Javascript
Node.js利用debug模块打印出调试日志的方法
Apr 25 Javascript
Swiper自定义分页器使用详解
Dec 28 Javascript
vuejs实现标签选项卡动态更改css样式的方法
May 31 Javascript
用Node编写RESTful API接口的示例代码
Jul 04 Javascript
django js 实现表格动态标序号的实例代码
Jul 12 Javascript
ES5新增数组的实现方法
May 12 Javascript
JavaScript日期库date-fn.js使用方法解析
Sep 09 Javascript
Java无向树分析 实现最小高度树
Apr 09 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
PHP生成静态页面详解
2006/12/05 PHP
php中使用接口实现工厂设计模式的代码
2012/06/17 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
PHP7之Mongodb API使用详解
2015/12/26 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
深入研究PHP中的preg_replace和代码执行
2018/08/15 PHP
php curl优化下载微信头像的方法总结
2018/09/07 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
YII2框架中behavior行为的理解与使用方法示例
2020/03/13 PHP
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
javascript正则表达式使用replace()替换手机号的方法
2015/01/19 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
javascript模拟命名空间
2015/04/17 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
使用jQuery给Table动态增加行、清空table的方法
2018/09/05 jQuery
Vue-CLI3.x 设置反向代理的方法
2018/12/06 Javascript
Vue实现跑马灯效果
2020/05/25 Javascript
[03:03]DOTA2 2017国际邀请赛开幕战队入场仪式
2017/08/09 DOTA
使用Python下载Bing图片(代码)
2013/11/07 Python
Python中使用第三方库xlrd来读取Excel示例
2015/04/05 Python
利用Python脚本生成sitemap.xml的实现方法
2017/01/31 Python
Python安装官方whl包和tar.gz包的方法(推荐)
2017/06/04 Python
详解多线程Django程序耗尽数据库连接的问题
2018/10/08 Python
详解Python中pandas的安装操作说明(傻瓜版)
2019/04/08 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
学校领导班子群众路线整改措施
2014/09/16 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
2014年社区计生工作总结
2014/11/18 职场文书
会计简历自我评价
2015/03/10 职场文书
python实现简单倒计时功能
2021/04/21 Python
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
聊聊基于pytorch实现Resnet对本地数据集的训练问题
2022/03/25 Python
Apache SkyWalking 监控 MySQL Server 实战解析
2022/09/23 Servers