- 浏览: 310220 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
开发小菜:
支持IE9以下的吗?
HTML5+CSS3+JQuery打造自定义视频播放器 -
攻城使:
开发Html5必须得下载么,我用dw编写,把文件复制到myec ...
html5开发 myeclipse安装aptana插件 -
疾风鹰狼:
...
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码 -
sardodo:
你好,我想问下,导入例子中的.dae格式模型是可以看到旋转的小 ...
c3dl 初步认识 -
BIOHAZARDX:
下载学习,初学者膜拜一下。
html5 实现动画(三)
<canvas id="canvas3" width="250" height="300" style="background-color:black">
你的浏览器不支持 <canvas>标签,请使用 Chrome 浏览器 或者 FireFox 浏览器
</canvas><br/>
帧数:<input id="txt4" type="text" value="10"/><br/>
速度:<input type="text" id="txt5" value="5"/><br/>
比例:<input type="text" id="txt6" value="2"/><br/>
<input type="button" value="开始" onclick="animate()"/>
<input type="button" value="暂停" onclick="stop()"/>
<script type="text/javascript">
//定时器
var interval=null;
//停止动画
function stop(){
clearInterval(interval);
}
//===================================================================
//精灵登场
//====================================================================
//每一帧在大图中的位置
var frames=[];
frames[0]=[0,4,19,19];
frames[1]=[22,1,24,19];
frames[2]=[49,0,18,17];
frames[3]=[1,32,18,17];
frames[4]=[22,33,24,19];
frames[5]=[49,36,19,19];
//精灵类
function Sprite(dx,dy,delta,fps){
this.dx=dx;
this.dy=dy;
this.fps=fps;
this.delay=1000/fps;
this.last_update=0;
//移动速度
this.delta=-delta;
//帧编号
this.index=0;
//方向
this.dir_left=true;
}
Sprite.prototype.update=function(canvas){
//获取当前时间
var now=(new Date()).getTime();
if((now-this.last_update)>this.delay){
if(this.dir_left){
//方向朝左,只绘制0 1 2帧
if(this.index>2)
this.index=0;
}
else{
//方向朝右,只绘制 3 4 5 帧
if(this.index>5)
this.index=3;
}
//取出当前帧的坐标
this.frame=frames[this.index];
//当前帧在大图中的位置
this.sx=this.frame[0];
this.sy=this.frame[1];
this.sw=this.frame[2];
this.sh=this.frame[3];
//当前帧大小
this.dw=this.frame[2];
this.dh=this.frame[3];
//改变 x 坐标
this.dx=this.dx+this.delta;
//左边缘检测
if(this.dx<0){
this.dx=0;
//转向
this.delta=-this.delta;
this.dir_left=false;
this.index=3;
}
//右边缘检测
if((this.dx+this.dw)>canvas.getAttribute("width")){
this.dx=canvas.getAttribute("width")-this.dw;
//转向
this.delta=-this.delta;
this.dir_left=true;
this.index=0;
}
this.dy=this.dy;//y 不移动
this.index++;
this.last_update=now;
}
}
function animate(){
//停止动画
stop();
//移动速度
var delta=parseInt(document.getElementById('txt4').value);
//每秒绘制多少次
var fps=parseInt(document.getElementById('txt5').value);
//比例
var scale=parseInt(document.getElementById('txt6').value);
//画布对象
var canvas=document.getElementById("canvas3")
//获取上下文对象
var ctx = canvas.getContext("2d");
//清空画布
ctx.clearRect(0,0,canvas.getAttribute("width"),canvas.getAttribute("height"));
var img=new Image();
img.src="http://www.crazyfrom.com/images/2010/10/sprite.gif";
var sprite=new Sprite(120,150,delta,fps);
interval = setInterval(function(){
//清空画布
ctx.clearRect(0,0,canvas.getAttribute("width"),canvas.getAttribute("height"));
//更新数据
sprite.update(canvas);
//保存状态
ctx.save();
//移动坐标
ctx.translate(sprite.dx,sprite.dy);
ctx.scale(scale,scale);
ctx.drawImage(img,sprite.sx,sprite.sy,sprite.sw,sprite.sh,0,0,sprite.dw,sprite.dh);
//恢复状态
ctx.restore();
},1);
}
</script>
你的浏览器不支持 <canvas>标签,请使用 Chrome 浏览器 或者 FireFox 浏览器
</canvas><br/>
帧数:<input id="txt4" type="text" value="10"/><br/>
速度:<input type="text" id="txt5" value="5"/><br/>
比例:<input type="text" id="txt6" value="2"/><br/>
<input type="button" value="开始" onclick="animate()"/>
<input type="button" value="暂停" onclick="stop()"/>
<script type="text/javascript">
//定时器
var interval=null;
//停止动画
function stop(){
clearInterval(interval);
}
//===================================================================
//精灵登场
//====================================================================
//每一帧在大图中的位置
var frames=[];
frames[0]=[0,4,19,19];
frames[1]=[22,1,24,19];
frames[2]=[49,0,18,17];
frames[3]=[1,32,18,17];
frames[4]=[22,33,24,19];
frames[5]=[49,36,19,19];
//精灵类
function Sprite(dx,dy,delta,fps){
this.dx=dx;
this.dy=dy;
this.fps=fps;
this.delay=1000/fps;
this.last_update=0;
//移动速度
this.delta=-delta;
//帧编号
this.index=0;
//方向
this.dir_left=true;
}
Sprite.prototype.update=function(canvas){
//获取当前时间
var now=(new Date()).getTime();
if((now-this.last_update)>this.delay){
if(this.dir_left){
//方向朝左,只绘制0 1 2帧
if(this.index>2)
this.index=0;
}
else{
//方向朝右,只绘制 3 4 5 帧
if(this.index>5)
this.index=3;
}
//取出当前帧的坐标
this.frame=frames[this.index];
//当前帧在大图中的位置
this.sx=this.frame[0];
this.sy=this.frame[1];
this.sw=this.frame[2];
this.sh=this.frame[3];
//当前帧大小
this.dw=this.frame[2];
this.dh=this.frame[3];
//改变 x 坐标
this.dx=this.dx+this.delta;
//左边缘检测
if(this.dx<0){
this.dx=0;
//转向
this.delta=-this.delta;
this.dir_left=false;
this.index=3;
}
//右边缘检测
if((this.dx+this.dw)>canvas.getAttribute("width")){
this.dx=canvas.getAttribute("width")-this.dw;
//转向
this.delta=-this.delta;
this.dir_left=true;
this.index=0;
}
this.dy=this.dy;//y 不移动
this.index++;
this.last_update=now;
}
}
function animate(){
//停止动画
stop();
//移动速度
var delta=parseInt(document.getElementById('txt4').value);
//每秒绘制多少次
var fps=parseInt(document.getElementById('txt5').value);
//比例
var scale=parseInt(document.getElementById('txt6').value);
//画布对象
var canvas=document.getElementById("canvas3")
//获取上下文对象
var ctx = canvas.getContext("2d");
//清空画布
ctx.clearRect(0,0,canvas.getAttribute("width"),canvas.getAttribute("height"));
var img=new Image();
img.src="http://www.crazyfrom.com/images/2010/10/sprite.gif";
var sprite=new Sprite(120,150,delta,fps);
interval = setInterval(function(){
//清空画布
ctx.clearRect(0,0,canvas.getAttribute("width"),canvas.getAttribute("height"));
//更新数据
sprite.update(canvas);
//保存状态
ctx.save();
//移动坐标
ctx.translate(sprite.dx,sprite.dy);
ctx.scale(scale,scale);
ctx.drawImage(img,sprite.sx,sprite.sy,sprite.sw,sprite.sh,0,0,sprite.dw,sprite.dh);
//恢复状态
ctx.restore();
},1);
}
</script>
- donghua3.rar (1.4 KB)
- 下载次数: 236
发表评论
-
iframe 高度自适应
2011-11-03 17:07 1369转自:http://apps.hi.baidu.com/sha ... -
WordPress 博客添加新浪微博挂件:
2011-06-22 14:07 14741.点击链接http://t.sina ... -
HTML5 影音 ( Video ) 概論
2011-05-25 16:25 10591 Video介紹 引用我翻譯文檔《在HTML5頁面 ... -
HTML5 Audio Loops
2011-05-19 16:49 1288One of the neatest things abo ... -
处理火狐自动播放视频
2011-05-18 17:54 1452版权声明:转载时请 ... -
教你用HTML5开发iPhone应用程序
2011-05-13 17:38 1212你一整年都像现在一样沮丧,这我知道。所有铁杆Objecti ... -
很给力,20个HTML5视频播放器及代码
2011-05-09 14:45 1976本文来源: http://www.uleadesi ... -
HTML 5 Video概述
2011-05-09 13:32 1021本文来自:http://www.xlnv.ne ... -
支持移动平台的Html5播放器
2011-05-09 13:25 2908本文转自:http://www.riameeting ... -
HTML5 API简介一(Canvas,Audio/Video,Geolocation)
2011-05-09 13:22 1567本文来自:http://www.myext.cn/web ... -
HTML5资源
2011-05-09 11:56 1233JS APIs: 选择器 W3C草案:Selecto ... -
HTML5 Audio/Video 标签,属性,方法,事件
2011-05-09 11:53 1425本文转自:http://directguo.com/blo ... -
DIV实现隐藏与显示
2011-05-06 15:23 754css中display属性的参考值: display:n ... -
HTML5+CSS3+JQuery打造自定义视频播放器
2011-05-06 12:57 6738简介HTML5的<video> ... -
HTML 5 <video> preload 属性
2011-05-06 12:54 1155设置为预加载的 video 元素: <vide ... -
HTML5 – Video
2011-05-06 12:51 1055在HTML5以前若我們要在網頁中播放影片時,需要使用Act ... -
超過 23 個開源的 HTML5 影音播放器與框架
2011-05-06 12:03 7526超過 23 個開源的 HTML5 影音播放器與框架 - ... -
Building a better HTML5 video player with Glow
2011-05-06 11:51 1079Last year I wrote a post (Bu ... -
Ambilight для тэга video
2011-05-06 11:49 775В некоторых топовых моделях т ... -
怎样用js+html5实现视频的播放控制
2011-05-06 11:46 1413html5 代码: <video width ...
相关推荐
三、HTML5过场动画实现 1. 使用CSS3过渡(Transitions):通过设置`transition`属性,元素可以在两个样式之间平滑过渡,常用于简单的过场效果。 2. CSS3动画(Animations):更复杂的效果可以通过`@keyframes`创建...
这篇博客“HTML5实现动画(一)”可能详细介绍了如何利用HTML5的特性来创建动态效果。我们将围绕HTML5动画的核心技术进行深入探讨。 首先,HTML5引入了`<canvas>`元素,这是一个画布,允许开发者通过JavaScript进行...
这个“html5实现的动画小人”很可能是一个利用HTML5的Canvas元素和JavaScript来创建的动态图形实例。Canvas是HTML5提供的一种绘图API,允许开发者在网页上进行像素级别的图像处理。 在HTML5的Canvas中,动画的实现...
在这个“HTML5实现的超酷3D实景地图动画特效源码”中,我们可以深入探讨HTML5如何与3D技术结合,创造出生动逼真的地图体验。 首先,HTML5的Canvas元素是实现3D效果的关键。Canvas是一个二维绘图接口,通过...
在前端Web开发领域,"唯美表白动画代码jQuery跟Html5实现"是一个有趣且富有创意的项目,它结合了现代Web技术的力量,为用户提供了一个浪漫的情人节表白平台。这个项目的核心在于利用jQuery库和HTML5的新特性来创建...
HTML5字符动画是一种利用HTML5的新...通过上述技术,"我的字符串动画多标签160811-1"这个项目很可能是实现了一个具备多种特效、可自定义行进出场动画的HTML5字符动画实例,为用户提供了一种新颖且有趣的文字展示方式。
在“HTML5 + JS实现的动画”这个主题中,我们将深入探讨如何利用这两种技术来创建引人入胜的动画效果。 HTML5是超文本标记语言的最新版本,它引入了许多新的元素和API,旨在提升网页的语义性、可访问性和功能。其中...
接下来,CSS3(层叠样式表第三版)与HTML5结合,提供了丰富的动画和过渡效果。例如,`@keyframes`规则可以定义一个动画的过程,从起始状态到结束状态的逐步变化。在页面滚动时,可以应用这些动画使图片淡入、淡出、...
基于HTML5 Canvas实现的雷达扫描动画特效源码,可以在canvas上绘制任意元素,包括3D元素。这款雷达扫描动画就是利用了canvas的灵活特性在canvas上绘制这些美丽的扫描线条,用户可以根据自己的喜好绘制出新的类似雷达...
html5-实现canvas宇宙黑洞炫酷粒子动画特效.rar html5-实现canvas宇宙黑洞炫酷粒子动画特效.rar html5-实现canvas宇宙黑洞炫酷粒子动画特效.rar html5-实现canvas宇宙黑洞炫酷粒子动画特效.rar html5-实现canvas宇宙...
这个"html5 canvas小人跳舞动画特效"是一个利用Canvas API实现的交互式动画示例,它展示了如何通过编程方式创建动态、生动的视觉效果。 在Canvas中,我们可以使用`canvas.getContext('2d')`获取2D渲染上下文,然后...
html实现花瓣下落动画
HTML5实现五彩烟花动画特效,canvas炫彩烟火,高质量js源代码! HTML5实现五彩烟花动画特效,canvas炫彩烟火,高质量js源代码! HTML5实现五彩烟花动画特效,canvas炫彩烟火,高质量js源代码! HTML5实现五彩烟花...
Canvas是HTML5中的一个画布元素,通过JavaScript来绘制图形并实现动画。在提供的代码示例中,创建了一个canvas元素,并通过JavaScript获取其上下文对象(c),然后定义了一系列变量,如dx、carAlpha、carX等,用于...
通过阅读源代码,我们可以学习如何将这三个部分结合,创建一个完整的定格动画。 5. **优化与性能** 当处理大量图片时,要注意优化性能。可以使用懒加载技术,只在需要时加载图片,减少初始加载时间。另外,通过...
`jQuery+Html5实现唯美表白动画代码`可能是一个包含具体实现的JavaScript文件,而`js`目录可能包含了其他的辅助脚本或库。 为了实现这样一个表白动画,你需要按照以下步骤进行: 1. 创建HTML结构,添加必要的元素...
HTML5线条声波波纹动画特效是一个利用现代Web技术实现的动态视觉效果,它结合了HTML、CSS和JavaScript的力量,为网页添加了引人注目的交互性元素。在这个压缩包中,主要包含了一个名为"jiaoben8767"的文件,这可能是...
CSS3的过渡效果是实现动画的关键。通过设置`transition`属性,可以在属性值改变时平滑地过渡到新状态。例如,可以定义`transition: all 0.5s ease;`来使元素在0.5秒内平滑地完成所有属性的变化,`ease`是缓动函数,...
本示例"酷炫html5页面加载loading动画效果demo"是基于原生JavaScript和CSS实现的,无需任何第三方库,简化了开发流程,提高了性能。 首先,我们来详细了解一下如何实现这种加载动画。在HTML结构中,我们需要在`...