`
zdsdiablo
  • 浏览: 66139 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

做了个爆炸的特效,基于HTML5的canvas

阅读更多

截图

 

 

不废话了,上代码

 

 

<!DOCTYPE html>
<html>
  <head>
  <title>爆炸效果</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 </head>
  <body>
		<canvas id="canvasTest" width="640px" height="480px"></canvas> 
<script>
var booms={};
window.onload = function() {
	draw();
}
function draw() {
	var canvas = document.getElementById('canvasTest');
	if (canvas == null) return false;
	var context = canvas.getContext('2d');		
	context.clearRect(0,0,640,480);
	context.save();
	context.translate(300,300);	
	var rg = context.createRadialGradient(0, 0, 0, 100,0,100);
	rg.addColorStop(0, '#ff0');
	rg.addColorStop(1, '#f00');
	context.lineCap = "round";
	context.strokeStyle=rg;
	
	for(var i=1;i<20;i++){
		if(booms[i] && booms[i].id){
			spread(booms[i]);
		}else{
			var start=random(5,15);
			var height=random(5,25);
			var angle=random(10,360);
			var width=random(1,3);
			booms[i]=new boom(i,context,start,height,angle,width);
		}
		drawLine(booms[i]);
	}
	
	context.restore();
	setTimeout(draw,50);
}

function spread(boom){
	boom.start+=5;
	if(boom.height>3){
		boom.height-=3;
		boom.angle+=1;
	}	
}

function boom(id,ctx,start,height,angle,width){
	this.id=id;
	this.ctx=ctx;
	this.start=start;
	this.height=height;
	this.angle=angle;
	this.width=width;
	this.maxheight=3*(start+height);
}

function drawLine(boom){
	if(boom.start+boom.height<boom.maxheight){
		boom.ctx.lineWidth = boom.width;
		boom.ctx.save();
		boom.ctx.rotate(Math.PI*2/360*boom.angle)
		boom.ctx.beginPath();
		
		boom.ctx.moveTo(boom.start,0);
		
		boom.ctx.lineTo(boom.start+boom.height,0)
		boom.ctx.stroke();
		boom.ctx.restore();
	}
}

function random(start, end) {
	return Math.round(Math.random() * (end - start) + start);
}
	
</script>
  </body>
</html>

 

先移动原点坐标到300,300. 随机分布20个爆炸碎片, 用渐变线表示. 长度为0,100的渐变线,由黄变红.

分配起始点start,画线长度height,角度angle,线粗width.

在spread中,画线完成后每帧刷新步长为5, 线长每次减3直到少于3.角度稍微变化.

maxheight为最大总长,超过此长度则不再绘画.

  • 大小: 2.4 KB
分享到:
评论

相关推荐

    网页模板——基于HTML5+Canvas实现炫彩纸屑爆炸碎片特效.zip

    【标题】中的“网页模板——基于HTML5+Canvas实现炫彩纸屑爆炸碎片特效”表明这是一个使用HTML5和Canvas技术创建的网页模板,其特色在于能够展示一种炫彩的纸屑爆炸碎片效果。这个特效为网页增加了动态视觉元素,...

    HTML5 canvas炫酷图片爆炸飞散特效

    插件描述:这是一款基于html5 canvas的炫酷图片爆炸飞散特效js插件。该js插件当用鼠标点击图片时,图片会有玻璃窗被子弹击碎时的爆炸飞散效果,非常炫酷。演示地址:http://www.jq22.com/jquery-info9241

    基于html5 canvas绘制炫酷爆炸圆点背景动画特效源码.zip

    这个“基于html5 canvas绘制炫酷爆炸圆点背景动画特效源码.zip”是一个前端项目,旨在利用Canvas API创建动态、引人注目的背景效果。接下来,我们将深入探讨如何使用HTML5 Canvas来实现这样的动画特效。 首先,...

    HTML5 canvas 3D烟花爆炸动画.zip

    这个"HTML5 canvas 3D烟花爆炸动画"实例,是利用Canvas API实现的3D视觉效果,让用户在浏览器中享受逼真的烟花秀。 在HTML5 Canvas中,3D效果通常需要借助一些额外的技术,如WebGL。WebGL是一种基于OpenGL标准的...

    Canvas光束光线爆炸特效.zip

    总的来说,"Canvas光束光线爆炸特效"是一个利用HTML5 Canvas和JavaScript实现的动态视觉效果,能够为网页增添独特且引人入胜的开场动画。通过深入理解并运用这些技术,开发者可以创造出更多创新且富有吸引力的网页...

    基于HTML5 canvas的逼真烟花特效插件

    总结起来,"基于HTML5 canvas的逼真烟花特效插件"——"jquery-fireworks"是一个利用HTML5 canvas技术和jQuery库创建的网页烟花特效工具。它提供了简单易用的接口,让开发者能够轻松在网页中添加生动的烟花展示,同时...

    网页模板——基于html5 canvas绘制炫酷爆炸圆点背景动画特效源码.zip

    这个"网页模板——基于html5 canvas绘制炫酷爆炸圆点背景动画特效源码"是一个利用HTML5 Canvas API实现的视觉效果,为网页提供了一个引人注目的背景动画。 首先,Canvas API是一个JavaScript接口,提供了基本的2D...

    HTML5 Canvas酷炫彩色圆形粒子爆炸动画特效

    本项目“HTML5 Canvas酷炫彩色圆形粒子爆炸动画特效”充分利用了Canvas API,为用户呈现了一个充满视觉冲击力的效果:当鼠标点击时,彩色的圆形粒子会以爆炸的方式飞散开来,形成独特的动画场景。 首先,让我们了解...

    基于HTML5+Canvas实现炫彩纸屑爆炸碎片特效.zip

    本项目“基于HTML5+Canvas实现炫彩纸屑爆炸碎片特效”就是利用这两者来实现一种吸引眼球的动画效果,常用于网站背景、游戏、互动设计等场景。 HTML5是超文本标记语言(HyperText Markup Language)的第五代版本,它...

    HTML5 Canvas 3D倒计时爆炸特效源码.zip

    在这个特定的“HTML5 Canvas 3D倒计时爆炸特效源码”中,我们可以深入探讨以下几个关键知识点: 1. **HTML5 Canvas API**:Canvas是一个基于矢量图形的HTML元素,它通过JavaScript提供了一套绘图API,可以进行实时...

    html5基于canvas实现彩色爆炸的小球动画特效源码.zip

    html5基于canvas实现彩色爆炸的小球动画特效源码是一款html5基于canvas实现彩色爆炸的小球动画特效源码,画面上的小球呈中心往四周爆炸散开的效果,下方有开始于暂停按钮可控制动画的播放。整体动画效果流畅自然。...

    html5 Canvas酷炫粒子图形变形动画特效

    本特效是基于Canvas实现的一种酷炫粒子图形变形动画,它利用3D效果来展示当用户点击页面时图形的变化,为网站增添生动而引人入胜的视觉效果。 首先,我们需要理解HTML5 Canvas的基本结构。Canvas是一个HTML元素,...

    html5 canvas实现的鼠标点击水珠爆炸动画特效源码.zip

    这是一款基于html5 canvas实现的鼠标点击水珠爆炸动画特效源码,鼠标点击界面可出现水珠的四散爆炸动画效果,该源码没有引入任何外部图形元素,且动画效果逼真流畅,是一款非常经典的HTML5动画源码,建议使用支持...

    基于HTML5 canvas的逼真烟花特效插件jquery-fireworks.zip

    在这个名为“基于HTML5 canvas的逼真烟花特效插件jquery-fireworks.zip”的压缩包中,我们主要关注的是HTML5的canvas元素以及与之配合的jQuery库来实现的烟花特效。 Canvas是HTML5的一个核心元素,它提供了一个二维...

Global site tag (gtag.js) - Google Analytics