利用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 相关文章推荐
jQuery的强大选择器小结
Dec 27 Javascript
一个简单的jQuery插件制作 学习过程及实例
Apr 25 Javascript
document.getElementById方法在Firefox与IE中的区别
May 18 Javascript
读jQuery之十二 删除事件核心方法
Jul 31 Javascript
实现placeholder效果的方案汇总
Jun 11 Javascript
纯javascript代码实现计算器功能(三种方法)
Sep 07 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
Dec 05 Javascript
JS模仿手机端九宫格登录功能实现代码
Apr 28 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
Jul 01 Javascript
教你一步步用jQyery实现轮播器
Dec 18 Javascript
Vue-resource实现ajax请求和跨域请求示例
Feb 23 Javascript
【js设计模式】SOLID五大设计原则
Mar 24 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版(3)
2006/10/09 PHP
php中AES加密解密的例子小结
2014/02/18 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
PHP实现过滤各种HTML标签
2015/05/17 PHP
CodeIgniter视图使用注意事项
2016/01/20 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
php并发加锁问题分析与设计代码实例讲解
2021/02/26 PHP
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
2014/10/30 Javascript
jQuery 中DOM 操作详解
2015/01/13 Javascript
jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
2015/03/24 Javascript
理解javascript中的原型和原型链
2015/07/30 Javascript
简单谈谈Javascript中类型的判断
2015/10/19 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
jquery拖动层效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
bootstrap的工具提示实例代码
2017/05/17 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
vue+ts下对axios的封装实现
2020/02/18 Javascript
在vue中使用console.log无效的解决
2020/08/09 Javascript
[03:11]DOTA2上海特锦赛小组赛第一日recap精彩回顾
2016/02/28 DOTA
Python subprocess模块学习总结
2014/03/13 Python
Python中的异常处理相关语句基础学习笔记
2016/07/11 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
使用CSS3实现多列布局与多背景的技巧
2016/02/29 HTML / CSS
GWT都有什么特性
2016/12/02 面试题
计算机专业个人求职自荐信
2013/09/21 职场文书
年终晚会主持词
2014/03/25 职场文书
房屋租赁协议书
2014/04/10 职场文书
理发店策划方案
2014/06/05 职场文书
校运会口号
2014/06/18 职场文书
住宿生擅自离校检讨书
2014/09/22 职场文书
社区义诊通知
2015/04/24 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
PO模式在selenium自动化测试框架的优势
2022/03/20 Python