利用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的键盘控制事件说明
Apr 15 Javascript
javascript forEach通用循环遍历方法
Oct 11 Javascript
javascript中xml操作实现代码
Nov 21 Javascript
纯js写的分页表格数据为json串
Feb 18 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
Jan 29 Javascript
js实现页面刷新滚动条位置不变
Nov 27 Javascript
jQuery滑动到底部加载下一页数据的实例代码
May 22 jQuery
layui实现动态和静态分页
Apr 28 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
Dec 23 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
May 16 Javascript
VSCode 配置uni-app的方法
Jul 11 Javascript
JS运算符优先级与表达式示例详解
Sep 04 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 过滤危险html代码
2009/06/29 PHP
php调整gif动画图片尺寸示例代码分享
2013/12/05 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
2015/01/22 PHP
PHP生成指定随机字符串的简单实现方法
2015/04/01 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
PHP正则匹配到2个字符串之间的内容方法
2018/12/24 PHP
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
使用documentElement正确取得当前可见区域的大小
2014/07/25 Javascript
js实现类似菜单风格的TAB选项卡效果代码
2015/08/28 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
jquery——九宫格大转盘抽奖实例
2017/01/16 Javascript
vue学习笔记之指令v-text && v-html && v-bind详解
2017/05/12 Javascript
使用node.js搭建服务器
2017/05/20 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
2017/06/13 Javascript
angular 服务的单例模式(依赖注入模式下)详解
2018/10/22 Javascript
微信公众平台获取access_token的方法步骤
2019/03/29 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
python中二维阵列的变换实例
2014/10/09 Python
python制作花瓣网美女图片爬虫
2015/10/28 Python
初步剖析C语言编程中的结构体
2016/01/16 Python
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
Python实现微信小程序支付功能
2019/07/25 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
python实现根据给定坐标点生成多边形mask的例子
2020/02/18 Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
2020/06/30 Python
Python+Kepler.gl实现时间轮播地图过程解析
2020/07/20 Python
python实现扫雷游戏的示例
2020/10/20 Python
pycharm 使用anaconda为默认环境的操作
2021/02/05 Python
品管员岗位职责
2013/11/10 职场文书
小学优秀辅导员事迹材料
2014/05/11 职场文书
市级绿色学校申报材料
2014/08/25 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书