您现在的位置是:网站首页> 编程资料编程资料
用HTML5制作烟火效果的教程html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
2023-10-14
605人已围观
简介 这篇文章主要介绍了用HTML5制作烟火效果的教程,主要利用到了Canvas API,需要的朋友可以参考下
要过年了,过年想到的就是放烟火啦。。。。于是就用canvas写了个放烟火的效果,鼠标点击也会产生烟火,不过不要产生太多烟火哦,一个烟火散出的粒子是30到200个之间,当页面上的粒子数量达到一定的时候,页面就会很卡咯,我也没特意去优化神马的。以后有空再说吧。
直接上DEMO吧:放烟火
原理很简单。。。就写一个烟火类以及碎屑类,实例化后让它飞起来,然后到达某个点后,把这个烟火对象的dead属性置为true,然后再实例化出一定数量的碎屑对象,并且给与碎屑对象随机一个要到达的目标点,然后让所有碎屑对象飞过去就行了。
【烟火】
XML/HTML Code复制内容到剪贴板
- var Boom = function(x,r,c,boomArea,shape){ //烟火对象
- this.booms = [];
- this.x = x;
- this.y = (canvas.height+r);
- this.r = r;
- this.c = c;
- this.shape = shape || false;
- this.boomArea = boomArea;
- this.theta = 0;
- this.dead = false;
- this.ba = parseInt(getRandom(80 , 200));
- }
- Boom.prototype = {
- _paint:function(){
- ctx.save();
- ctx.beginPath();
- ctx.arc(this.x,this.y,this.r,0,2*Math.PI);
- ctx.fillStyle = this.c;
- ctx.fill();
- ctx.restore();
- },
- _move:function(){
- var dx = this.boomArea.x - this.x , dy = this.boomArea.y - this.y;
- thisthis.x = this.x+dx*0.01;
- thisthis.y = this.y+dy*0.01;
- if(Math.abs(dx)<=this.ba && Math.abs(dy)<=this.ba){
- if(this.shape){
- this._shapBoom();
- }
- else this._boom();
- this.dead = true;
- }
- else {
- this._paint();
- }
- },
- _drawLight:function(){
- ctx.save();
- ctx.fillStyle = "rgba(255,228,150,0.3)";
- ctx.beginPath();
- ctx.arc(this.x , this.y , this.r+3*Math.random()+1 , 0 , 2*Math.PI);
- ctx.fill();
- ctx.restore();
- },
- _boom:function(){ //普通爆炸
- var fragNum = getRandom(30 , 200);
- var style = getRandom(0,10)>=5? 1 : 2;
- var color;
- if(
相关内容
- 浅谈利用缓存来优化HTML5 Canvas程序的性能一张图看懂移动HTML5前端性能优化
- 用HTML5制作数字时钟的教程Html5 canvas实现粒子时钟的示例代码HTML写一个网页动态时钟HTML5实现可缩放时钟代码用HTML5的canvas实现一个炫酷时钟效果使用html5 canvas 画时钟代码实例分享html5绘制时钟动画html5时钟实现代码HTML 罗盘式时钟的实现
- 用HTML5 实现橡皮擦的涂抹效果的教程Html5+JS实现手机摇一摇功能HTML5 Canvas的事件处理介绍HTML5 audio标签使用js进行播放控制实例
- 用HTML5中的Canvas结合公式绘制粒子运动的教程详解使用HTML5 Canvas创建动态粒子网格动画Html5 canvas实现粒子时钟的示例代码
- 使用分层画布来优化HTML5渲染的教程html5 分层屏幕适配的方法Html分层的box-shadow效果的示例代码
- 简单介绍HTML5中的文件导入jQuery+HTML5实现的页面整屏滑动切换效果源码html5实现的网格布局动画加载并打开内容特效源码html5实现的可拖拽图片循环滚动切换特效源码
- HTML5实现获取地理位置信息并定位功能HTML5地理定位_动力节点Java学院整理HTML5地理定位实例简单html5代码获取地理位置h5实现获取用户地理定位的实例代码
- 天天飞车怎么超车 各种超车技巧详解_手机游戏_游戏攻略_
- 天天飞车如何隐身 隐身技巧分享_手机游戏_游戏攻略_
- 全民英雄所有紫卡英雄成长值一览_手机游戏_游戏攻略_
点击排行
本栏推荐
