源图像:
目录
HTML Canvas Animations Demo - By Gloomy Fish
首页 web前端 H5教程 HTML5 Canvas draw方法制作动画效果示例_html5教程技巧

HTML5 Canvas draw方法制作动画效果示例_html5教程技巧

May 16, 2016 pm 03:49 PM
canvas draw 动画

HTML5 Canvas动画效果演示
主要思想:
首先要准备一张有连续帧的图片,然后利用HTML5 Canvas的draw方法在不同的时间间隔绘制不同的帧,这样看起来就像动画在播放。
关键技术点:
JavaScript 函数setTimeout()有两个参数,第一个是参数可以传递一个JavaScript方法,
另外一个参数代表间隔时间,单位为毫秒数。代码示例:
setTimeout( update, 1000/30);
Canvas的API-drawImage()方法,需要指定全部9个参数:
ctx.drawImage(myImage, offw, offh, width,height, x2, y2, width, height);
其中offw, offh是指源图像的起始坐标点,width, height表示源图像的宽与高,x2,y2表
示源图像在目标Canvas上的起始坐标点。
一个22帧的大雁飞行图片实现的效果:
 
源图像:
 
程序代码:

复制代码
代码如下:






Canvas Mouse Event Demo

<script> <br />var ctx = null; // global variable 2d context <br />var started = false; <br />var mText_canvas = null; <br />var x = 0, y =0; <br />var frame = 0; // 22 5*5 + 2 <br />var imageReady = false; <br />var myImage = null; <br />var px = 300; <br />var py = 300; <br />var x2 = 300; <br />var y2 = 0; <br />window.onload = function() { <br />var canvas = document.getElementById("animation_canvas"); <br />console.log(canvas.parentNode.clientWidth); <br />canvas.width = canvas.parentNode.clientWidth; <br />canvas.height = canvas.parentNode.clientHeight; <br />if (!canvas.getContext) { <br />console.log("Canvas not supported. Please install a HTML5 compatible browser."); <br />return; <br />} <br />// get 2D context of canvas and draw rectangel <br />ctx = canvas.getContext("2d"); <br />ctx.fillStyle="black"; <br />ctx.fillRect(0, 0, canvas.width, canvas.height); <br />myImage = document.createElement('img'); <br />myImage.src = "../robin.png"; <br />myImage.onload = loaded(); <br />} <br />function loaded() { <br />imageReady = true; <br />setTimeout( update, 1000/30); <br />} <br />function redraw() { <br />ctx.clearRect(0, 0, 460, 460) <br />ctx.fillStyle="black"; <br />ctx.fillRect(0, 0, 460, 460); <br />// find the index of frames in image <br />var height = myImage.naturalHeight/5; <br />var width = myImage.naturalWidth/5; <br />var row = Math.floor(frame / 5); <br />var col = frame - row * 5; <br />var offw = col * width; <br />var offh = row * height; <br />// first robin <br />px = px - 5; <br />py = py - 5; <br />if(px < -50) { <br />px = 300; <br />} <br />if(py < -50) { <br />py = 300; <br />} <br />//var rate = (frame+1) /22; <br />//var rw = Math.floor(rate * width); <br />//var rh = Math.floor(rate * height); <br />ctx.drawImage(myImage, offw, offh, width, height, px, py, width, height); <br />// second robin <br />x2 = x2 - 5; <br />y2 = y2 + 5; <br />if(x2 < -50) { <br />x2 = 300; <br />y2 = 0; <br />} <br />ctx.drawImage(myImage, offw, offh, width, height, x2, y2, width, height); <br />} <br />function update() { <br />redraw(); <br />frame++; <br />if (frame >= 22) frame = 0; <br />setTimeout( update, 1000/30); <br />} <br /></script>


HTML Canvas Animations Demo - By Gloomy Fish


Play Animations
登录后复制







发现上传透明PNG格式有点问题,所以我上传不透明的图片。可以用其它图片替换,替换以后请修改最大帧数从22到你的实际帧数即可运行。
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

CSS动画:如何实现元素的闪光效果 CSS动画:如何实现元素的闪光效果 Nov 21, 2023 am 10:56 AM

CSS动画:如何实现元素的闪光效果,需要具体代码示例在网页设计中,动画效果有时可以为页面带来很好的用户体验。而闪光效果是一种常见的动画效果,它可以使元素更加引人注目。下面将介绍如何使用CSS实现元素的闪光效果。一、闪光的基本实现首先,我们需要使用CSS的animation属性来实现闪光效果。animation属性的值需要指定动画名称、动画执行时间、动画延迟时

动画不工作在PowerPoint中[修复] 动画不工作在PowerPoint中[修复] Feb 19, 2024 am 11:12 AM

您是否正在尝试制作演示文稿,但无法添加动画?如果动画在你的WindowsPC上的PowerPoint中不起作用,那么这篇文章将会帮助你。这是一个常见的问题,许多人都在抱怨。例如,在Microsoft团队中演示或在屏幕录制期间,动画可能会停止工作。在本指南中,我们将探索各种故障排除技术,以帮助您修复在Windows上的PowerPoint中无法运行的动画。为什么我的PowerPoint动画不起作用?我们注意到可能导致Windows上PowerPoint中的动画无法工作问题的一些可能原因如下:由于个

ppt动画如何设置先进入再退出 ppt动画如何设置先进入再退出 Mar 20, 2024 am 09:30 AM

我们在日常的办公中经常会使用到ppt,那么你是否对ppt里边的每个操作功能都很了解呢?例如:ppt中怎么设置动画效果、怎么设置切换效果、每个动画的效果时长是多少?每个幻灯片能不能自动播放、ppt动画先进入再退出等等,那么今天这期我就先跟大家分享ppt动画先进入再退出的具体操作步骤,就在下方,小伙伴们快来看一看吧!1.首先,我们在电脑中打开ppt,单击文本框外侧选中文本框,(如下图红色圈出部分所示)。2.然后,单击菜单栏中的【动画】,选中【擦除】的效果,(如图红色圈出部分所示)。3.接下来,单击【

跳票 2 年,国产 3D 动画电影《二郎神之深海蛟龙》定档 7 月 13 日 跳票 2 年,国产 3D 动画电影《二郎神之深海蛟龙》定档 7 月 13 日 Jan 26, 2024 am 09:42 AM

本站1月26日消息,国产3D动画电影《二郎神之深海蛟龙》发布一组最新剧照,正式宣布将于7月13日上映。据了解,《二郎神之深海蛟龙》是由迷狐星(北京)动漫有限公司、霍尔果斯众合千澄影业有限公司、浙江横店影业有限公司、浙江共赢影业有限公司、成都天火科技有限公司、华文映像(北京)影业有限公司出品,王君执导的动画电影,原定2022年7月22日在中国大陆上映。本站剧情简介:封神之战后,姜子牙携“封神榜”分封诸神,而后封神榜被天庭密封于九州秘境深海之下。事实上,除了分封神位,封神榜中还封缄着众多强大的妖邪元

宫崎骏动画电影《红猪》延长上映至明年 1 月 16 日,豆瓣 8.6 分 宫崎骏动画电影《红猪》延长上映至明年 1 月 16 日,豆瓣 8.6 分 Dec 18, 2023 am 08:07 AM

本站消息,宫崎骏动画电影《红猪》宣布将上映时间延长至2024年1月16日本站此前报道,《红猪》已于11月17日登陆全国艺联专线影院,累计票房超2000万,豆瓣评分8.6分,4、5星好评占85.8%。《红猪》由吉卜力工作室制作,宫崎骏执导,森山周一郎、加藤登纪子、大冢明夫、冈村明美等参与配音,最初于1992年在日本上映。该片改编自宫崎骏漫画作品《飞行艇时代》,讲述了意大利空军的王牌飞行员波鲁克・罗森被施了魔法变成了一头猪。之后,他成为了一位赏金猎人,打击空中劫匪,保护身边人。剧情简介:罗森是一战中

Netflix 黏土动画电影《小鸡快跑 2》终极预告公布,12 月 15 日上线 Netflix 黏土动画电影《小鸡快跑 2》终极预告公布,12 月 15 日上线 Nov 20, 2023 pm 01:21 PM

Netflix的黏土动画电影《小鸡快跑2》的最终预告已经公布,该影片预计将于12月15日上线本站注意到,《小鸡快跑2》预告片展示了小鸡洛基和金杰为了寻找女儿莫莉开展行动。莫莉被FunLand农场的一辆卡车带走,洛基和金杰冒着危险找回女儿。该片由萨姆・菲尔执导,并由桑迪韦・牛顿、扎克瑞・莱维、贝拉・拉姆齐、伊梅尔达・斯汤顿和大卫・布拉德利主演。据了解,《小鸡快跑2》是继《小鸡快跑》之后时隔20多年推出的续集。第一部作品于2001年1月2日在中国上映,讲述了一群小鸡们在养鸡厂面临被做成鸡肉馅饼的命运

Netflix 动画剧集《索尼克:回家大冒险》第三季片段公布,明年上线 Netflix 动画剧集《索尼克:回家大冒险》第三季片段公布,明年上线 Nov 12, 2023 am 09:25 AM

Netflix抱歉,我可以帮您重写内容,但我需要知道您想要重写的原始内容。可以提供给我吗?在极客周上公布了动画剧集《索尼克:回家大冒险》第三季片段,预计将于2024年上线抱歉,我可以帮您重写内容,但我需要知道您想要重写的原始内容。可以提供给我吗?据本站了解,《索尼克:回家大冒险》由世嘉、WildBrain抱歉,我可以帮您重写内容,但我需要知道您想要重写的原始内容。可以提供给我吗?工作室抱歉,我可以帮您重写内容,但我需要知道您想要重写的原始内容。可以提供给我吗?和抱歉,我可以帮您重写内容,但我需要

最佳免费AI动画艺术生成器 最佳免费AI动画艺术生成器 Feb 19, 2024 pm 10:50 PM

如果您渴望找到顶尖的免费AI动画艺术生成器,您可以结束搜索了。动漫艺术世界几十年来一直以其独特的角色设计、迷人的色彩和引人入胜的情节吸引着观众。不过,创作动漫艺术需要天赋、技能和耗费大量时间。然而,随着人工智能(AI)的不断发展,现在你可以借助最佳的免费AI动画艺术生成器,无需深入了解复杂技术,就能探索动漫艺术的世界。这将为你释放创造力提供新的可能性。什么是人工智能动漫艺术生成器?AI动画艺术生成器利用复杂的算法和机器学习技术,分析广泛的动画作品数据库。通过这些算法,系统学习并识别不同动漫风格的

See all articles