利用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 相关文章推荐
13 个JavaScript 性能提升技巧分享
Jul 26 Javascript
动态添加option及createElement使用示例
Jan 26 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
Jul 02 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
Apr 22 Javascript
Bootstrap每天必学之滚动监听
Mar 16 Javascript
javascript 将共享属性迁移到原型中去的实现方法
Aug 31 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
Aug 31 Javascript
用director.js实现前端路由使用实例
Jan 27 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
Jun 14 Javascript
vue移动端实现红包雨效果
Jun 23 Javascript
React性能优化系列之减少props改变的实现方法
Jan 17 Javascript
微信小程序获取用户信息并保存登录状态详解
May 10 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
德劲1103二次变频版的打磨
2021/03/02 无线电
用php来检测proxy
2006/10/09 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
2013/12/25 PHP
用 Javascript 验证表单(form)中的单选(radio)值
2009/09/08 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
2011/04/05 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
2015/03/13 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
javascript基本算法汇总
2016/03/09 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
2017/02/03 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
JS ES6多行字符串与连接字符串的表示方法
2017/04/26 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
利用JS如何获取form表单数据
2019/12/19 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
Openlayers绘制地图标注
2020/09/28 Javascript
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
python实现远程通过网络邮件控制计算机重启或关机
2018/02/22 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
Python中SQLite如何使用
2020/05/27 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
Python: glob匹配文件的操作
2020/12/11 Python
python实现定时发送邮件
2020/12/23 Python
大学生毕业自我鉴定范文
2013/11/03 职场文书
公司新年寄语
2014/04/04 职场文书
奥巴马开学演讲稿
2014/05/15 职场文书
民族团结先进个人事迹材料
2014/06/02 职场文书
经典演讲稿开场白
2014/08/25 职场文书
Python列表删除重复元素与图像相似度判断及删除实例代码
2021/05/07 Python
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫