您现在的位置是:网站首页> 编程资料编程资料
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码HTML5 Canvas实现烟花绽放特效canvas烟花特效锦集
2021-08-31
1016人已围观
简介 这是一个很酷的HTML5 Canvas动画,它将模拟的是我们现实生活中烟花绽放的动画特效,效果非常逼真,下面我们来简单分析一下实现这款HTML5烟花特效的过程及代码,主要由HTML代码、CSS代码以及Javascript代码组成,当然javascript代码是最重要的
这是一个很酷的HTML5 Canvas动画,它将模拟的是我们现实生活中烟花绽放的动画特效,效果非常逼真,但是毕竟是电脑模拟,带女朋友看就算了,效果还是差了点,呵呵。这个HTML5 Canvas动画有一点比较出色,就是其性能,Chrome上基本没有卡的感觉,就算你放出很多烟花也一样。

下面我们来简单分析一下实现这款HTML5烟花特效的过程及代码,主要由HTML代码、CSS代码以及Javascript代码组成,当然javascript代码是最重要的。
HTML代码:
XML/HTML Code复制内容到剪贴板
- <div id=”gui”>div>
- <div id=”canvas-container”> <div id=”mountains2″>div>
- <div id=”mountains1″>div><div id=”skyline”>div> div>
HTML的结构非常简单,即构造了一个canvas容器,我们会利用JS在这个容器中生成一个Canvas对象。看最后的JS代码你就会知道了。
CSS代码:
CSS Code复制内容到剪贴板
- #canvas-container { background: #000 url(bg.jpg); height: 400px; left: 50%; margin: -200px 0 0 -300px; position: absolute; top: 50%; width: 600px; z-index: 2;
- } canvas { cursor: crosshair; display: block; position: relative; z-index: 3;
- } canvas:active { cursor: crosshair;
- } #skyline { background: url(skyline.png) repeat-x 50% 0; bottombottom: 0; height: 135px; left: 0; position: absolute; width: 100%; z-index: 1;
- } #mountains1 { background: url(mountains1.png) repeat-x 40% 0; bottombottom: 0; height: 200px; left: 0; position: absolute; width: 100%; z-index: 1;
- } #mountains2 { background: url(mountains2.png) repeat-x 30% 0; bottombottom: 0; height: 250px; left: 0; position: absolute; width: 100%; z-index: 1;
- } #gui { rightright: 0; position: fixed; top: 0; z-index: 3;
- }
CSS代码没什么特别,主要也就定义一下背景色和边框之类的。
接下来是最重要的Javascript代码。
Javascript代码:
JavaScript Code复制内容到剪贴板
- self.init = function(){
- self.dt = 0;
- self.oldTime = Date.now();
- self.canvas = document.createElement('canvas');
- self.canvasContainer = $('#canvas-container'); var canvasContainerDisabled = document.getElementById('canvas-container');
- self.canvas.onselectstart = function() { return false;
- };
- self.canvas.width = self.cw = 600;
- self.canvas.height = self.ch = 400;
- self.particles = [];
- self.partCount = 30;
- self.fireworks = [];
- self.mx = self.cw/2;
- self.my = self.ch/2;
- self.currentHue = 170;
- self.partSpeed = 5;
- self.partSpeedVariance = 10;
- self.partWind = 50;
- self.partFriction = 5;
- self.partGravity = 1;
- self.hueMin = 150;
- self.hueMax = 200;
- self.fworkSpeed = 2;
- self.fworkAccel = 4;
- self.hueVariance = 30;
- self.flickerDensity = 20;
- self.showShockwave = false;
- self.showTarget = true;
- self.clearAlpha = 25;
- self.canvasContainer.append(self.canvas);
- self.ctx = self.canvas.getContext('2d');
- self.ctx.lineCap = 'round';
- self.ctx.lineJoin = 'round';
- self.lineWidth = 1;
- self.bindEvents();
- self.canvasLoop();
- self.canvas.onselectstart = function() { return false;
- };
- };
这段JS代码主要是往canvas容器中构造一个Canvas对象,并且对这个canvas对象的外观以及动画属性作了初始化。
JavaScript Code复制内容到剪贴板
- var Particle = function(x, y, hue){ this.x = x; this.y = y; this.coordLast = [
- {x: x, y: y},
- {x: x, y: y},
- {x: x, y: y}
- ]; this.angle = rand(0, 360); this.speed = rand(((self.partSpeed - self.partSpeedVariance) <= 0) ? 1 : self.partSpeed - self.partSpeedVariance, (self.partSpeed + self.partSpeedVariance)); this.friction = 1 - self.partFriction/100; this.gravity = self.partGravity/2; this.hue = rand(hue-self.hueVariance, hue+self.hueVariance); this.brightness = rand(50, 80); this.alpha = rand(40,100)/100; this.decay = rand(10, 50)/1000; this.wind = (rand(0, self.partWind) - (self.partWind/2))/25; this.lineWidth = self.lineWidth;
- };
- Particle.prototype.update = function(index){ var
相关内容
- HTML5制作3D爱心动画教程 献给女友浪漫的礼物html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- html5 css3实例教程 一款html5和css3实现的小机器人走路动画html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- 实例教程 利用html5和css3打造一款创意404页面html5实现的模拟电视没有信号错误404页面动画效果源码html5和svg实现太空人404错误页面动画模板特效源码
- 基于html5实现的图片墙效果HTML5实现倾斜悬挂图片墙响应鼠标可移动效果HTML5实践-图片设置成灰度图html5 拖拽上传图片实例演示HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览HTML5实现的3D相册图片轮播动画特效源码HTML5图片预览实例分享利用HTML5的新特点实现图片文件异步上传一款超炫HTML5 3D立体图片相册效果HTML5 3D骨牌鼠标滑过图片呈现3D的效果在HTML5 Canvas中放入图片和保存为图片的方法
- html5版canvas自由拼图实例canvas拼图功能实现代码示例
- HTML5地理定位实例HTML5地理定位_动力节点Java学院整理HTML5实现获取地理位置信息并定位功能简单html5代码获取地理位置h5实现获取用户地理定位的实例代码
- 使用 HTML5 Canvas 制作水波纹效果点击图片就会触发canvas三角函数模拟水波效果的示例代码
- 一款html5 canvas实现的图片玻璃碎片特效html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- html5中的input新属性range使用记录HTML5新增的8类INPUT输入类型介绍html禁止清除input文本输入缓存的两种方法HTML5 input placeholder 颜色修改示例HTML 5 input placeholder 属性如何完美兼任ieHTML5 input元素类型:email及url介绍html5 input属性使用示例html4和html5区别之如何在一个input上添加焦点实现代码HTML5 input新增type属性color颜色拾取器的实例代码
- 浅谈html5 响应式布局吃透移动端 Html5 响应式布局
点击排行
本栏推荐
