一个canvas实现序列帧的案例-开红包动画:initCanvas(callback){

let canvas = document.querySelector('#canvas'); //获取canvas对象

canvas.width = '300';

canvas.height = '300';

let ctx = canvas.getContext('2d'); //获取2d上下文

let frame = 0 //帧数

let img = new Image(); //创建img

img.src = 'https://p5.ssl.qhimg.com/d/inn/bec43552e015/line3.png';//给img添加资源

let imgW = 8000;//整张大图的宽度

let x = 0, y = 0, w = 400, h = 400, iX = 0, iY = 0;

let animate = function() {

//定义一个帧数的变量,函数每一帧执行一次,则frame就加一次,以此记录帧数

frame++;

ctx.clearRect(0, 0, canvas.width, canvas.height)

//每过8帧执行一次 x += w 以此达到切换图片的效果

if(frame % 8 === 0 ) {

x += w

if (x >= imgW - w) { //判定当走到最后一张

callback && callback();

return;

}

}

//每隔一帧就执行绘画飞机的操作

ctx.drawImage(img, x, y, w, h, iX, iY, 300, 300);

//为避免frame加到太大,在这里做一个当frame加到10000时,又让它为0的操作

if(frame > 10000 ) {

frame = 0;

}

//利用requestAnimationFrame达到动画效果

requestAnimationFrame(animate);

}

img.onload = function(){

//定义变量:图片截取的位置(x,y) 图片截取的宽高(w,h), 截取的飞机在canvas中的位置(iX, iY)

animate();

}

}

帧图片素材

一张图片上放满每一帧的图片,eg:

欢迎转载,请注明本文的链接地址:

前端实现序列帧_canvas实现序列帧动画的案例相关推荐

  1. 小猿圈自学web前端之CSS3动画练习案例:用CSS3做个钟表

    前段时间发的五子棋的游戏很多小伙伴都私聊让再做个,今天小猿圈web前端讲师为大家分享的是CSS3动画练习案例:用CSS3做个钟表,想玩的小伙伴记得自己运行一下呦. 自学CSS3属性之后,我们来用一个小 ...

  2. 【前端实例代码】霓虹灯按钮动画效果悬停2| html CSS特效 惊艳| 前端开发 网页制作 基础入门教程

    b站视频演示效果: [web前端特效源码]霓虹灯按钮动画效果悬停2| html CSS特效 惊艳| 前端开发 网页制作 基础入门教程 效果图: 完整代码: <!DOCTYPE html> ...

  3. 【前端实例代码】霓虹灯按钮动画效果悬停| html CSS特效 惊艳| 前端开发 网页制作 基础入门教程

    b站视频演示效果: [web前端特效源码]霓虹灯按钮动画效果悬停| html CSS特效 惊艳| 前端开发 网页制作 基础入门教程 效果图: 完整代码: <!DOCTYPE html> & ...

  4. web前端技术(二)之动画进阶

    web前端技术(二)之动画进阶 目录 web前端技术(二)之动画进阶 前言 一.web前端动画是什么 二.2D转换标签(transforms) 1. translate() 2.rotate() 3. ...

  5. 万彩动画大师-案例视频教程(中级)

    博客笔记:万彩动画大师-零基础视频教程-笔记 -- 视频学习网址 -- 参考项目展示1.参考项目展示2 博客笔记:万彩动画大师-案例视频教程(中级)   -- 视频学习网址 -- 参考项目展示 工程文 ...

  6. 3dmax:3dmax动画栏之关键帧动画经典案例(弹跳小球、实活力小球(上升慢下降快)、小球跳墙、跳动越来越低的小球实例、空间跳动的小球、球跳阶梯)之详细攻略

    3dmax:3dmax动画栏之关键帧动画经典案例(弹跳小球.实活力小球(上升慢下降快).小球跳墙.跳动越来越低的小球实例.空间跳动的小球.球跳阶梯)之详细攻略 目录

  7. javaScript动画项目案例

    javaScript动画项目案例 示例代码:我的github demo效果演示示例:我的demo网站 1.动画库编写 匀速运动 案例一 效果:匀速运动 <!DOCTYPE html> &l ...

  8. AEJoy —— 详解 AE 如何将 png 序列帧导出为 SVGA 动画文件

    效果预览 我在 PC 上用 OpenGL 实现了一个 svga 预览的程序 "闪烁"是原序列帧设计的问题 1.导入 png 序列帧至AE 从菜单栏 "导入" - ...

  9. 前端技术周刊 2019-01-07:CSS 动画

    2019-01-07 前端快爆 Chrome 72 已经进入了 beta 阶段.新增:公有类成员的声明和初始化.一些 DevTools 新功能(可视化性能指标.高亮 text nodes.复制节点的 ...

  10. web前端入门到实战:CSS动画之旋转魔方轮播

    下面我将一步一步详解如何利用纯CSS实现一个旋转魔方轮播的效果. 总的来说我们需要实现以下两个主要功能: 构建一个能够旋转的立方体 让立方体拥有基本轮播所具有的特性 但在完成以上两点之前我们需要再次了 ...

最新文章

  1. 程序员拯救乐坛?OpenAI用“逆天”GPT2.0搞了个AI音乐生成器
  2. 谷歌、亚马逊的顶级GPU被质疑太贵了!这种CPU算法竟然快15倍
  3. 行为模式之Observer模式
  4. 让我感动的经典台词(zz)
  5. 漫谈 C++ 的各种检查
  6. C语言第一个字节地址,C语言字节对齐详解
  7. 你试过一个人旅游吗?去了哪里?
  8. 玩转Heartbeat,快速实现高可用性集群
  9. 【GoWeb编程】准备起飞
  10. Quartz CronTrigger最完整触发时间配置说明
  11. 2021年西电计算机学院软专复试问题总结
  12. 全能UI设计师到底需要具备哪些能力呢?
  13. 解决pprint安装不上 | pprint_一个漂亮的打印机
  14. 浏览器沙盒--它是什么,我们为什么需要它?
  15. 用BP神经网络解决简单的分类问题
  16. django - celery
  17. 你身边的博士刚毕业以及稳定下来后的年薪大约是 多少?
  18. 正高职称 程序员_研究员级高级工程师和高级工程师有什么区别,副研究员与高级工程师有什么差别...
  19. 基于Keil的nRF52840新建工程
  20. 循环 打印直角三角形,九九乘法表

热门文章

  1. Javaweb家政服务管理系统的设计与实现
  2. php moodle mysql_搭建基于Windows + Apache + PHP + MySQL的Moodle平台
  3. vb连接mysql数据库报错_vb6连接mysql数据库
  4. VS2010下安装Opencv
  5. AVI视频怎么转换成MOV视频
  6. 记录windows游戏编程——1
  7. scrapy爬取快代理并保存mongo数据库
  8. 微信小程序购物车商品单选、多选、数量变化、结算等
  9. 解决开发工具文件夹拖不进图片文件
  10. bios 微星click_微星主板CLICK BIOS II BIOS设置软件下载_微星主板CLICK BIOS II BIOS设置软件官方下载-太平洋下载中心...