利用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 相关文章推荐
控制打印时页眉角的代码
Feb 08 Javascript
js AppendChild与insertBefore用法详细对比
Dec 16 Javascript
超级好用的jQuery圆角插件 Corner速成
Aug 31 Javascript
JS小数运算出现多为小数问题的解决方法
Jun 02 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
Nov 04 Javascript
jQuery制作全屏宽度固定高度轮播图(实例讲解)
Jul 08 jQuery
JS实现电商放大镜效果
Aug 24 Javascript
在vue中使用vuex,修改state的值示例
Nov 08 Javascript
vue表单数据交互提交演示教程
Nov 13 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
Jan 21 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
Nov 03 Javascript
在js中修改html body的样式
Nov 11 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
如何开发一个虚拟域名系统
2006/10/09 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
PHP+JS实现大规模数据提交的方法
2015/07/02 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
Firefox和IE浏览器兼容JS脚本写法小结
2008/07/07 Javascript
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
jquery+javascript编写国籍控件
2015/02/12 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
举例详解AngularJS中ngShow和ngHide的使用方法
2015/06/19 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
分享我的jquery实现下拉菜单心的
2015/11/29 Javascript
详细谈谈AngularJS的子级作用域问题
2016/09/05 Javascript
bootstrap选项卡扩展功能详解
2017/06/14 Javascript
详解在Vue中如何使用axios跨域访问数据
2017/07/07 Javascript
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
2017/11/27 Javascript
浅谈实现vue2.0响应式的基本思路
2018/02/13 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
[17:13]DOTA2 HEROS教学视频教你分分钟做大人-斯拉克
2014/06/13 DOTA
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
Python通过VGG16模型实现图像风格转换操作详解
2020/01/16 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
python反扒机制的5种解决方法
2021/02/06 Python
一款纯css3实现的tab选项卡的实列教程
2014/12/11 HTML / CSS
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
amaze ui 的使用详细教程
2020/08/19 HTML / CSS
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
意大利网上购书网站:Libraccio.it
2021/02/03 全球购物
Android面试题附答案
2014/12/08 面试题
大学生村官考核材料
2014/05/23 职场文书
中共广东省委常委会党的群众路线教育实践活动整改方案
2014/09/23 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
2014年服务行业工作总结
2014/11/18 职场文书
2014保险公司个人工作总结
2014/12/09 职场文书
js 数组 fill() 填充方法
2021/11/02 Javascript