iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >JavaScript怎么实现带音效的烟花特效
  • 809
分享到

JavaScript怎么实现带音效的烟花特效

2023-06-22 05:06:01 809人浏览 安东尼
摘要

这篇文章主要介绍“javascript怎么实现带音效的烟花特效”,在日常操作中,相信很多人在JavaScript怎么实现带音效的烟花特效问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript怎么实

这篇文章主要介绍“javascript怎么实现带音效的烟花特效”,在日常操作中,相信很多人在JavaScript怎么实现带音效的烟花特效问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript怎么实现带音效的烟花特效”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

JavaScript代码如下:

$(function() {var canvas = $('#canvas')[0];canvas.width = $(window).width();canvas.height = $(window).height();var ctx = canvas.getContext('2d'); // resize$(window).on('resize', function() {canvas.width = $(window).width();canvas.height = $(window).height();ctx.fillStyle = '#000003';ctx.fillRect(0, 0, canvas.width, canvas.height);center = { x: canvas.width / 2, y: canvas.height / 2 };}); // initctx.fillStyle = '#000003';ctx.fillRect(0, 0, canvas.width, canvas.height);// objectsvar listFire = [];var listFirework = [];var listText = [];var listSpecial = [];var listspark = [];var lights = [];var fireNumber = 10;var center = { x: canvas.width / 2, y: canvas.height / 2 };var range = 100;var fired = 0;var onHold = 0;var supprise = false;var textIndex = 0;var actions = [makeDoubleFullCircleFirework, makePlanetCircleFirework, makeFullCircleFirework, makeDoubleCircleFirework, makeHeartFirework, makeCircleFirework, makeRandomFirework];for (var i = 0; i < fireNumber; i++) {var fire = {x: Math.random() * range / 2 - range / 4 + center.x,y: Math.random() * range * 2.5 + canvas.height,size: Math.random() + 0.5,fill: '#ff3',vx: Math.random() - 0.5,vy: -(Math.random() + 4),ax: Math.random() * 0.06 - 0.03,delay: Math.round(Math.random() * range) + range * 4,hold: false,alpha: 1,far: Math.random() * range + (center.y - range)};fire.base = {x: fire.x,y: fire.y,vx: fire.vx,vy: fire.vy};//listFire.push(fire);// play soundplayLaunchSound();}// define array of soundvar listExpSound = $('audio.exp');var listLaunchSound = $('audio.launch'); // define array position of textvar textString = 'happylunarnewyear2018';var textMatrix = [4.5, 0, 5.5, 0, 6.5, 0, 7.5, 0, 8.5, 0,0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 6, 1, 7, 1, 8, 1, 10, 1, 11, 1, 12, 1, 13, 1,5, 2, 6, 2, 7, 2, 8, 2]var chars = {h: [0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7,1, 3, 2, 3, 3, 3, 4, 3,5, 0, 5, 1, 5, 2, 5, 3, 5, 4, 5, 5, 5, 6, 5, 7],a: [2, 0, 2, 1, 2, 2, 1, 2, 1, 3, 1, 4, 1, 5, 0, 5, 0, 6, 0, 7, 2, 5,3, 0, 3, 1, 3, 2, 4, 2, 4, 3, 4, 4, 4, 1, 5, 5, 5, 6, 5, 7, 3, 5],p: [0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7,1, 0, 2, 0, 3, 0, 4, 1, 5, 2, 4, 3, 3, 4, 2, 4, 1, 4],y: [0, 0, 0, 1, 1, 1, 1, 2, 1, 3, 2, 3, 2, 4, 2, 5, 2, 6, 2, 7,3, 2, 3, 3, 4, 1, 4, 2, 5, 0, 5, 1],l: [0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7,1, 7, 2, 7, 3, 7, 4, 7, 5, 7],u: [0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6,1, 7, 2, 7, 3, 7, 4, 7,5, 0, 5, 1, 5, 2, 5, 3, 5, 4, 5, 5, 5, 6],n: [0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7,1, 1, 1, 2, 2, 2, 2, 3, 2, 4, 3, 4, 3, 5, 4, 5, 4, 6,5, 0, 5, 1, 5, 2, 5, 3, 5, 4, 5, 5, 5, 6, 5, 7],e: [0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7,1, 0, 2, 0, 3, 0, 4, 0, 5, 0,1, 3, 2, 3, 3, 3, 4, 3,1, 7, 2, 7, 3, 7, 4, 7, 5, 7],w: [0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 1, 6,2, 1, 2, 2, 2, 3, 2, 4, 2, 5, 2, 6, 2, 7, 3, 7,5, 0, 5, 1, 5, 2, 5, 3, 5, 4, 5, 5, 4, 5, 4, 6],r: [0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7,1, 0, 2, 0, 3, 0, 4, 1, 5, 2, 4, 3, 3, 4, 2, 4, 1, 4,1, 5, 2, 5, 3, 6, 4, 6, 5, 7],2: [0, 1, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 5, 1, 5, 2, 5, 3,4, 3, 3, 3, 2, 3, 2, 4, 1, 4, 1, 5,0, 5, 0, 6, 0, 7, 1, 7, 2, 7, 3, 7, 4, 7, 5, 7, 5, 6],0: [0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6,1, 0, 2, 0, 3, 0, 4, 0,1, 7, 2, 7, 3, 7, 4, 7,5, 1, 5, 2, 5, 3, 5, 4, 5, 5, 5, 6],1: [1, 2, 2, 2, 2, 1, 3, 1, 3, 0,4, 0, 4, 1, 4, 2, 4, 3, 4, 4, 4, 5, 4, 6, 4, 7,1, 7, 2, 7, 3, 7, 5, 7],7: [0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0,5, 1, 5, 2, 5, 3, 4, 3, 4, 4,3, 4, 3, 5, 3, 6, 3, 7]} function initText() {var i = textIndex;var velocity = Math.random() * 0.25 + 1;var shift = { x: -(Math.random() + 2), y: -(Math.random() + 3) };var char = chars[textString[i]];var width = 80;var half = 6.5 * width;var left = textMatrix[i * 2] * width - half;var top = textMatrix[i * 2 + 1] * range * 1.2 - range * 2.4;for (var j = 0; j < fireNumber * char.length * 0.25; j++) {var rand = Math.floor(Math.random() * char.length * 0.5);var x = char[rand * 2] + shift.x;var y = char[rand * 2 + 1] + shift.y;var text = {x: center.x + left * 0.9,y: center.y + top,left: center.x + left,size: Math.random() + 0.5,fill: '#ff3',vx: x * (velocity + (Math.random() - 0.5) * 0.5),vy: y * (velocity + (Math.random() - 0.5) * 0.5),ay: 0.08,alpha: 1,life: Math.round(Math.random() * range / 2) + range / 1.5}text.base = {life: text.life,size: text.size,};text.direct = (text.left - text.x) * 0.08;listText.push(text);}// play soundplayExpSound();//lights.push({ x: center.x + left * 0.9, y: center.y + top, color: text.fill, radius: range * 2 });if (++textIndex < textString.length) {setTimeout(initText, 10);}else {textIndex = 0;}} function initSpark() {var x = Math.random() * range * 3 - range * 1.5 + center.x;var vx = Math.random() - 0.5;var vy = -(Math.random() + 4);var ax = Math.random() * 0.04 - 0.02;var far = Math.random() * range * 4 - range + center.y;var direct = ax * 10 * Math.PI;var max = fireNumber * 0.5;for (var i = 0; i < max; i++) {var special = {x: x,y: Math.random() * range * 0.25 + canvas.height,size: Math.random() + 2,fill: '#ff3',vx: vx,vy: vy,ax: ax,direct: direct,alpha: 1};special.far = far - (special.y - canvas.height);listSpecial.push(special);// play soundplayLaunchSound();}} function randColor() {var r = Math.floor(Math.random() * 256);var g = Math.floor(Math.random() * 256);var b = Math.floor(Math.random() * 256);var color = 'rgb($r, $g, $b)';color = color.replace('$r', r);color = color.replace('$g', g);color = color.replace('$b', b);return color;} function playExpSound() {var sound = listExpSound[Math.floor(Math.random() * listExpSound.length)];sound.volume = Math.random() * 0.4 + 0.1;sound.play();} function playLaunchSound() {setTimeout(function() {var sound = listLaunchSound[Math.floor(Math.random() * listLaunchSound.length)];sound.volume = 0.05;sound.play();}, 200);} function makeCircleFirework(fire) {var color = randColor();var velocity = Math.random() * 2 + 6;var max = fireNumber * 5;for (var i = 0; i < max; i++) {var rad = (i * Math.PI * 2) / max;var firework = {x: fire.x,y: fire.y,size: Math.random() + 1.5,fill: color,vx: Math.cos(rad) * velocity + (Math.random() - 0.5) * 0.5,vy: Math.sin(rad) * velocity + (Math.random() - 0.5) * 0.5,ay: 0.04,alpha: 1,life: Math.round(Math.random() * range / 2) + range / 2};firework.base = {life: firework.life,size: firework.size};listFirework.push(firework);}return color;} function makeDoubleCircleFirework(fire) {var color = randColor();var velocity = Math.random() * 2 + 8;var max = fireNumber * 3;for (var i = 0; i < max; i++) {var rad = (i * Math.PI * 2) / max;var firework = {x: fire.x,y: fire.y,size: Math.random() + 1.5,fill: color,vx: Math.cos(rad) * velocity + (Math.random() - 0.5) * 0.5,vy: Math.sin(rad) * velocity + (Math.random() - 0.5) * 0.5,ay: 0.04,alpha: 1,life: Math.round(Math.random() * range / 2) + range / 1.5};firework.base = {life: firework.life,size: firework.size};listFirework.push(firework);}color = randColor();velocity = Math.random() * 3 + 4;for (var i = 0; i < max; i++) {var rad = (i * Math.PI * 2) / max;var firework = {x: fire.x,y: fire.y,size: Math.random() + 1.5,fill: color,vx: Math.cos(rad) * velocity + (Math.random() - 0.5) * 0.5,vy: Math.sin(rad) * velocity + (Math.random() - 0.5) * 0.5,ay: 0.04,alpha: 1,life: Math.round(Math.random() * range / 2) + range / 1.5};firework.base = {life: firework.life,size: firework.size};listFirework.push(firework);}return color;} function makePlanetCircleFirework(fire) {var color = '#aa0609';var velocity = Math.random() * 2 + 4;var max = fireNumber * 2;for (var i = 0; i < max; i++) {var rad = (i * Math.PI * 2) / max;var firework = {x: fire.x,y: fire.y,size: Math.random() + 1.5,fill: color,vx: Math.cos(rad) * velocity + (Math.random() - 0.5) * 0.5,vy: Math.sin(rad) * velocity + (Math.random() - 0.5) * 0.5,ay: 0.04,alpha: 1,life: Math.round(Math.random() * range / 2) + range / 1.5};firework.base = {life: firework.life,size: firework.size};listFirework.push(firework);}max = fireNumber * 4;for (var i = 0; i < max; i++) {var rad = (i * Math.PI * 2) / max;var firework = {x: fire.x,y: fire.y,size: Math.random() + 1.5,fill: color,vx: Math.cos(rad) * velocity * Math.random(),vy: Math.sin(rad) * velocity * Math.random(),ay: 0.04,alpha: 1,life: Math.round(Math.random() * range / 2) + range / 1.5};firework.base = {life: firework.life,size: firework.size};listFirework.push(firework);}max = fireNumber * 3;color = '#ff9';var rotate = Math.random() * Math.PI * 2;var vx = velocity *  (Math.random() + 2);var vy = velocity * 0.6;for (var i = 0; i < max; i++) {var rad = (i * Math.PI * 2) / max;// calc x, y for ellipsevar cx = Math.cos(rad) * vx + (Math.random() - 0.5) * 0.5;var cy = Math.sin(rad) * vy + (Math.random() - 0.5) * 0.5;var firework = {x: fire.x,y: fire.y,size: Math.random() + 1.5,fill: color,vx: cx * Math.cos(rotate) - cy * Math.sin(rotate), // rotate x ellipsevy: cx * Math.sin(rotate) + cy * Math.cos(rotate), // rotate y ellipseay: 0.02,alpha: 1,life: Math.round(Math.random() * range / 2) + range / 1.5};firework.base = {life: firework.life,size: firework.size};listFirework.push(firework);}return '#aa0609';} function makeFullCircleFirework(fire) {var color = randColor();var velocity = Math.random() * 8 + 8;var max = fireNumber * 3;for (var i = 0; i < max; i++) {var rad = (i * Math.PI * 2) / max;var firework = {x: fire.x,y: fire.y,size: Math.random() + 1.5,fill: color,vx: Math.cos(rad) * velocity + (Math.random() - 0.5) * 0.5,vy: Math.sin(rad) * velocity + (Math.random() - 0.5) * 0.5,ay: 0.06,alpha: 1,life: Math.round(Math.random() * range / 2) + range / 1.5};firework.base = {life: firework.life,size: firework.size};listFirework.push(firework);}max = fireNumber * Math.round(Math.random() * 4 + 4);for (var i = 0; i < max; i++) {var rad = (i * Math.PI * 2) / max;var firework = {x: fire.x,y: fire.y,size: Math.random() + 1.5,fill: color,vx: Math.cos(rad) * velocity * Math.random(),vy: Math.sin(rad) * velocity * Math.random(),ay: 0.06,alpha: 1,life: Math.round(Math.random() * range / 2) + range / 1.5};firework.base = {life: firework.life,size: firework.size};listFirework.push(firework);}return color;} function makeDoubleFullCircleFirework(fire) {var color = randColor();var velocity = Math.random() * 8 + 8;var max = fireNumber * 3;for (var i = 0; i < max; i++) {var rad = (i * Math.PI * 2) / max;var firework = {x: fire.x,y: fire.y,size: Math.random() + 1.5,fill: color,vx: Math.cos(rad) * velocity + (Math.random() - 0.5) * 0.5,vy: Math.sin(rad) * velocity + (Math.random() - 0.5) * 0.5,ay: 0.04,alpha: 1,life: Math.round(Math.random() * range / 2) + range / 1.5};firework.base = {life: firework.life,size: firework.size};listFirework.push(firework);}color = randColor();velocity = Math.random() * 3 + 4;max = fireNumber * 2;for (var i = 0; i < max; i++) {var rad = (i * Math.PI * 2) / max;var firework = {x: fire.x,y: fire.y,size: Math.random() + 1.5,fill: color,vx: Math.cos(rad) * velocity + (Math.random() - 0.5) * 0.5,vy: Math.sin(rad) * velocity + (Math.random() - 0.5) * 0.5,ay: 0.06,alpha: 1,life: Math.round(Math.random() * range / 2) + range / 1.5};firework.base = {life: firework.life,size: firework.size};listFirework.push(firework);}max = fireNumber * 4;for (var i = 0; i < max; i++) {var rad = (i * Math.PI * 2) / max;var firework = {x: fire.x,y: fire.y,size: Math.random() + 1.5,fill: color,vx: Math.cos(rad) * velocity * Math.random(),vy: Math.sin(rad) * velocity * Math.random(),ay: 0.06,alpha: 1,life: Math.round(Math.random() * range / 2) + range / 1.5};firework.base = {life: firework.life,size: firework.size};listFirework.push(firework);}return color;} function makeHeartFirework(fire) {var color = randColor();var velocity = Math.random() * 3 + 3;var max = fireNumber * 5;var rotate = Math.random() * Math.PI * 2;for (var i = 0; i < max; i++) {var rad = (i * Math.PI * 2) / max + rotate;var v, p;if (rad - rotate < Math.PI * 0.5) {p = (rad - rotate) / (Math.PI * 0.5);v = velocity + velocity * p;}else if (rad - rotate > Math.PI * 0.5 && rad - rotate < Math.PI) {p = (rad - rotate - Math.PI * 0.5) / (Math.PI * 0.5);v = velocity * (2 - p);}else if (rad - rotate > Math.PI && rad - rotate < Math.PI * 1.5) {p = (rad - rotate - Math.PI) / (Math.PI * 0.5);v = velocity * (1 - p);}else if (rad - rotate > Math.PI * 1.5 && rad - rotate < Math.PI * 2) {p = (rad - rotate - Math.PI * 1.5) / (Math.PI * 0.5);v = velocity * p;}else {v = velocity;}v = v + (Math.random() - 0.5) * 0.25;var firework = {x: fire.x,y: fire.y,size: Math.random() + 1.5,fill: color,vx: Math.cos(rad) * v,vy: Math.sin(rad) * v,ay: 0.02,alpha: 1,life: Math.round(Math.random() * range / 2) + range / 1.5};firework.base = {life: firework.life,size: firework.size};listFirework.push(firework);}return color;} function makeRandomFirework(fire) {var color = randColor();for (var i = 0; i < fireNumber * 5; i++) {var firework = {x: fire.x,y: fire.y,size: Math.random() + 1.5,fill: color,vx: Math.random() * 15 - 7.5,vy: Math.random() * -15 + 5,ay: 0.05,alpha: 1,life: Math.round(Math.random() * range / 2) + range / 2};firework.base = {life: firework.life,size: firework.size};listFirework.push(firework);}return color;} function makeSpark(special) {var color = special.fill;var velocity = Math.random() * 6 + 12;var max = fireNumber;for (var i = 0; i < max; i++) {var rad = (Math.random() * Math.PI * 0.3 + Math.PI * 0.35) + Math.PI + special.direct;var spark = {x: special.x,y: special.y,size: Math.random() + 1,fill: color,vx: Math.cos(rad) * velocity + (Math.random() - 0.5) * 0.5,vy: Math.sin(rad) * velocity + (Math.random() - 0.5) * 0.5,ay: 0.02,alpha: 1,rad: rad,direct: special.direct,chain: Math.round(Math.random() * 2) + 2,life: Math.round(Math.random() * range / 2) + range / 2};spark.base = {life: spark.life,velocity: velocity};listSpark.push(spark);}return color;} function chainSpark(parentSpark) {var color = parentSpark.fill;if (parentSpark.chain > 0) {var velocity = parentSpark.base.velocity * 0.6;var max = Math.round(Math.random() * 5);for (var i = 0; i < max; i++) {var rad = (Math.random() * Math.PI * 0.3 - Math.PI * 0.15) + parentSpark.rad + parentSpark.direct;var spark = {x: parentSpark.x,y: parentSpark.y,size: parentSpark.size * 0.6,fill: color,vx: Math.cos(rad) * velocity + (Math.random() - 0.5) * 0.5,vy: Math.sin(rad) * velocity + (Math.random() - 0.5) * 0.5,ay: 0.02,alpha: 1,rad: rad,direct: parentSpark.direct,chain: parentSpark.chain,life: parentSpark.base.life * 0.8};spark.base = {life: spark.life,size: spark.size,velocity: velocity};listSpark.push(spark);} if (Math.random() > 0.9 && parentSpark.chain > 1) {// play soundplayExpSound();}}return color;} (function loop() {requestAnimationFrame(loop);update();draw();})(); function update() {// update fire logicfor (var i = 0; i < listFire.length; i++) {var fire = listFire[i];//if (fire.y <= fire.far) {// play soundplayExpSound();// case add fireworkfired++;var color = actions[Math.floor(Math.random() * actions.length)](fire);// lightlights.push({ x: fire.x, y: fire.y, color: color, radius: range * 2 });// resetfire.y = fire.base.y;fire.x = fire.base.x;// specialif (fired % 33 == 0) {initSpark();}// on holdsupprise = fired % 100 == 0 ? true : supprise;if (supprise) {fire.vx = 0;fire.vy = 0;fire.ax = 0;fire.hold = true;onHold++;}else {fire.vx = fire.base.vx;fire.vy = fire.base.vy;fire.ax = Math.random() * 0.06 - 0.03;// play soundplayLaunchSound();}}//if (fire.hold && fire.delay <= 0) {onHold--;fire.hold = false;fire.delay = Math.round(Math.random() * range) + range * 4;fire.vx = fire.base.vx;fire.vy = fire.base.vy;fire.ax = Math.random() * 0.06 - 0.03;fire.alpha = 1;// play soundplayLaunchSound();}else if (fire.hold && fire.delay > 0) {fire.delay--;}else {fire.x += fire.vx;fire.y += fire.vy;fire.vx += fire.ax;fire.alpha = (fire.y - fire.far) / fire.far;}} // update firework logicfor (var i = listFirework.length - 1; i >= 0; i--) {var firework = listFirework[i];if (firework) {firework.vx *= 0.9;firework.vy *= 0.9;firework.x += firework.vx;firework.y += firework.vy;firework.vy += firework.ay;firework.alpha = firework.life / firework.base.life;firework.size = firework.alpha * firework.base.size;firework.alpha = firework.alpha > 0.6 ? 1 : firework.alpha;//firework.life--;if (firework.life <= 0) {listFirework.splice(i, 1);}}} // supprise happy new year!if (supprise && onHold == 10) {supprise = false;setTimeout(initText, 3000);} // update text logicfor (var i = listText.length - 1; i >= 0; i--) {var text = listText[i];text.vx *= 0.9;text.vy *= 0.9;text.direct *= 0.9;text.x += text.vx + text.direct;text.y += text.vy;text.vy += text.ay;text.alpha = text.life / text.base.life;text.size = text.alpha * text.base.size;text.alpha = text.alpha > 0.6 ? 1 : text.alpha;//text.life--;if (text.life <= 0) {listText.splice(i, 1);}} // update special logicfor (var i = listSpecial.length - 1; i >= 0; i--) {var special = listSpecial[i];if (special.y <= special.far) {// play soundplayExpSound();// lightlights.push({ x: special.x, y: special.y, color: special.fill, alpha: 0.02, radius: range * 2 });//makeSpark(special);// remove from listlistSpecial.splice(i, 1);}else {special.x += special.vx;special.y += special.vy;special.vx += special.ax;special.alpha = (special.y - special.far) / special.far;}} // update spark logicfor (var i = listSpark.length - 1; i >= 0; i--) {var spark = listSpark[i];if (spark) {spark.vx *= 0.9;spark.vy *= 0.9;spark.x += spark.vx;spark.y += spark.vy;spark.vy += spark.ay;spark.alpha = spark.life / spark.base.life + 0.2;//spark.life--;if (spark.life < spark.base.life * 0.8 && spark.life > 0) {//spark.chain--;chainSpark(spark);}if (spark.life <= 0) {listSpark.splice(i, 1);}}}} function draw() {// clearctx.globalCompositeOperation = 'source-over';ctx.globalAlpha = 0.2;ctx.fillStyle = '#000003';ctx.fillRect(0, 0, canvas.width, canvas.height); // re-drawctx.globalCompositeOperation = 'screen';for (var i = 0; i < listFire.length; i++) {var fire = listFire[i];ctx.globalAlpha = fire.alpha;ctx.beginPath();ctx.arc(fire.x, fire.y, fire.size, 0, Math.PI * 2);ctx.closePath();ctx.fillStyle = fire.fill;ctx.fill();} for (var i = 0; i < listFirework.length; i++) {var firework = listFirework[i];ctx.globalAlpha = firework.alpha;ctx.beginPath();ctx.arc(firework.x, firework.y, firework.size, 0, Math.PI * 2);ctx.closePath();ctx.fillStyle = firework.fill;ctx.fill();} for (var i = 0; i < listSpecial.length; i++) {var special = listSpecial[i];ctx.globalAlpha = special.alpha;// ctx.beginPath();// ctx.arc(special.x, special.y, special.size, 0, Math.PI * 2);// ctx.closePath();// ctx.fill();ctx.fillStyle = special.fill;ctx.fillRect(special.x - special.size, special.y - special.size, special.size * 2, special.size *2);} for (var i = 0; i < listSpark.length; i++) {var spark = listSpark[i];ctx.globalAlpha = spark.alpha;// ctx.beginPath();// ctx.arc(spark.x, spark.y, spark.size, 0, Math.PI * 2);// ctx.closePath();// ctx.fill();ctx.fillStyle = spark.fill;ctx.fillRect(spark.x - spark.size, spark.y - spark.size, spark.size * 2, spark.size *2);} // light effectwhile (lights.length) {var light = lights.pop();var gradient = ctx.createRadialGradient(light.x, light.y, 0, light.x, light.y, light.radius);gradient.addColorStop(0, '#fff');gradient.addColorStop(0.2, light.color);gradient.addColorStop(0.8, 'rgba(0, 0, 0, 0)');gradient.addColorStop(1, 'rgba(0, 0, 0, 0)');ctx.globalAlpha = light.alpha ? light.alpha : 0.25;ctx.fillStyle = gradient;ctx.fillRect(light.x - light.radius, light.y - light.radius, light.radius * 2, light.radius * 2);} // supprise: HAPPY LUNAR NEW YEAR 2018!for (var i = 0; i < listText.length; i++) {var text = listText[i];ctx.globalAlpha = text.alpha;ctx.fillStyle = text.fill;ctx.fillRect(text.x - text.size, text.y - text.size, text.size * 2, text.size * 2);}}})

index首页代码如下:

<!DOCTYPE html><html lang="en" ><head><meta charset="UTF-8"><title>新年快乐</title><link rel="stylesheet" href="CSS/style.css" rel="external nofollow" ></head> <body> <canvas id="canvas"></canvas> <div class="block-audio">  <audio class="exp" src="m/exp1.mp3" controls></audio>  <audio class="exp" src="m/exp1.mp3" controls></audio>  <audio class="exp" src="m/exp1.mp3" controls></audio>  <audio class="exp" src="m/exp2.mp3" controls></audio>  <audio class="exp" src="m/exp2.mp3" controls></audio>  <audio class="exp" src="m/exp2.mp3" controls></audio>  <audio class="exp" src="m/exp3.mp3" controls></audio>  <audio class="exp" src="m/exp3.mp3" controls></audio>  <audio class="exp" src="m/exp3.mp3" controls></audio>  <audio class="exp" src="m/exp4.mp3" controls></audio>  <audio class="exp" src="m/exp4.mp3" controls></audio>  <audio class="exp" src="m/exp4.mp3" controls></audio>  <audio class="exp" src="m/exp5.mp3" controls></audio>  <audio class="exp" src="m/exp5.mp3" controls></audio>  <audio class="exp" src="m/exp5.mp3" controls></audio>  <audio class="exp" src="m/exp6.mp3" controls></audio>  <audio class="exp" src="m/exp6.mp3" controls></audio>  <audio class="exp" src="m/exp6.mp3" controls></audio>  <audio class="exp" src="m/exp7.mp3" controls></audio>  <audio class="exp" src="m/exp7.mp3" controls></audio>  <audio class="exp" src="m/exp7.mp3" controls></audio>  <audio class="exp" src="m/exp8.mp3" controls></audio>  <audio class="exp" src="m/exp8.mp3" controls></audio>  <audio class="exp" src="m/exp8.mp3" controls></audio>  <audio class="launch" src="m/launch2.mp3" controls></audio>  <audio class="launch" src="m/launch2.mp3" controls></audio>  <audio class="launch" src="m/launch3.mp3" controls></audio>  <audio class="launch" src="m/launch3.mp3" controls></audio>  <audio class="launch" src="m/launch4.mp3" controls></audio>  <audio class="launch" src="m/launch4.mp3" controls></audio>  <audio class="launch" src="m/launch5.mp3" controls></audio>  <audio class="launch" src="m/launch5.mp3" controls></audio>  <audio class="launch" src="m/launch6.mp3" controls></audio>  <audio class="launch" src="m/launch6.mp3" controls></audio></div> <script type="text/javascript" src="js/Jquery.min.js"></script><script type="text/javascript" src="js/index.js"></script> </body></html>

css代码如下:

canvas {  display: block;} .block-audio {  display: none;}body{padding: 0px;margin: 0px}

最后运行烟花特效动态图如下: 

JavaScript怎么实现带音效的烟花特效

到此,关于“JavaScript怎么实现带音效的烟花特效”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: JavaScript怎么实现带音效的烟花特效

本文链接: https://www.lsjlt.com/news/302755.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript实现带音效的烟花特效
    花了半个小时写的代码,这个html5 canvas新年烟花一定不会让大家失望! 首先我们看下静态的效果图: 文章末尾有动态的效果图,滑动即可看到!  JavaScript代码如下:...
    99+
    2024-04-02
  • JavaScript怎么实现带音效的烟花特效
    这篇文章主要介绍“JavaScript怎么实现带音效的烟花特效”,在日常操作中,相信很多人在JavaScript怎么实现带音效的烟花特效问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript怎么实...
    99+
    2023-06-22
  • JavaScript怎么实现烟花和福字特效
    这篇文章主要讲解了“JavaScript怎么实现烟花和福字特效”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript怎么实现烟花和福字特效”吧!超能力一:放烟花先带大家看看实现后...
    99+
    2023-06-26
  • JavaScript实现烟花和福字特效
    目录超能力一:放烟花超能力二:写福字隐藏能力:只有程序员能看懂的祝福虎虎生威、虎年大吉。 事事都如意,虎虎有生气…… 都2022了你还在从网上复制粘贴这些...
    99+
    2024-04-02
  • JavaScript实现烟花特效(面向对象)
    本文实例为大家分享了JavaScript实现烟花特效的具体代码,供大家参考,具体内容如下 本特效使用面向对象编程 分析 OOA 点击触发事件 烟花运动分成两个阶段 ...
    99+
    2024-04-02
  • JavaScript实现五种不同烟花特效
    目录 一、简单大气的烟花二、在农村看到的烟花三、可点击的烟花四、3D旋转烟花五、可拖动视角的自定义烟花 一、简单大气的烟花 演示地址:http://haiyong...
    99+
    2024-04-02
  • 怎么使用html和JavaScript实现3D烟花特效
    今天小编给大家分享一下怎么使用html和JavaScript实现3D烟花特效的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。效...
    99+
    2023-07-04
  • 怎么使用canvas实现烟花特效
    小编给大家分享一下怎么使用canvas实现烟花特效,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!canvas可以实现不同动画效果,本文主要记录几种不同节日烟花效果...
    99+
    2023-06-09
  • JS怎么实现酷炫的烟花特效
    这篇文章主要介绍“JS怎么实现酷炫的烟花特效”,在日常操作中,相信很多人在JS怎么实现酷炫的烟花特效问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JS怎么实现酷炫的烟花特效”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-27
  • JavaScript如何实现五种不同烟花特效
    本文将为大家详细介绍“JavaScript如何实现五种不同烟花特效”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“JavaScript如何实现五种不同烟花特效”能够给你意想不到的收获,请大家跟着小编的思路慢慢深...
    99+
    2023-06-26
  • HTML5和Canvas怎么实现烟花绽放特效
    这篇文章给大家分享的是有关HTML5和Canvas怎么实现烟花绽放特效的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果如下:undefinedundefinedundefined代码如下:XML/HTML Co...
    99+
    2023-06-09
  • HTML5中怎么用Canvas实现烟花绽放特效
    这篇文章主要介绍“HTML5中怎么用Canvas实现烟花绽放特效”,在日常操作中,相信很多人在HTML5中怎么用Canvas实现烟花绽放特效问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2024-04-02
  • 怎么用Python实现烟花效果
    本篇内容主要讲解“怎么用Python实现烟花效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python实现烟花效果”吧!效果如下:这里给出代码,祝各位老哥新年快乐。import&nbs...
    99+
    2023-06-29
  • JavaScript实现雪花飘落效果特效
    没有雪的冬天失去了冬天的美景,不见了千里冰封,万里雪飘的北国之美,诗人无从写雪,画家画不出雪景,摄影师拍不到冬天的美丽。雪,是冬天的灵魂,为大地铺好背景,之后发生的都如梦似幻,就像童...
    99+
    2023-01-01
    js雪花特效 雪花特效
  • html+JavaScript烟花3D简单特效(亲测可用)
    网页烟花特效方便使用,更能给养眼享受,复制黏贴就能使用,快来试试吧。这篇文章主要介绍了html+JavaScript烟花3D特效(亲测可用),需要的朋友可以参考下 <!doc...
    99+
    2023-01-01
    js烟花 烟花特效
  • js实现炫酷的烟花效果
    本文实例为大家分享了js实现炫酷的烟花效果的具体代码,供大家参考,具体内容如下 我们要理清整个流程的思路。 首先建立一块画布,用于展示烟花的效果,然后就要去思考烟花燃放的流程,我们都...
    99+
    2024-04-02
  • C++实现动态烟花效果
    目录一、前言二、代码fire.hmain.cppfire.cpp三、实现效果一、前言 C++实现的放烟花程序 用到了EGE图形库,没有的需要自行安装 可调项:背景图和背景音乐、粒子模...
    99+
    2024-04-02
  • 如何用JS代码实现文字烟花特效
    如何用JS代码实现文字烟花特效,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。之前我出了一个如何在网页里使用原生JS开发放烟花效果的教程。i...
    99+
    2024-04-02
  • 基于JavaScript实现在线网页烟花效果
    目录实现效果关键步骤源码实现效果 关键步骤 随机颜色 var hue = Math.random() * 360;var hueVariance = 30; functio...
    99+
    2023-02-03
    JavaScript在线网页烟花效果 JavaScript 烟花效果 JavaScript烟花
  • 使用JavaScript怎么绘制一个烟花效果
    这期内容当中小编将会给大家带来有关使用JavaScript怎么绘制一个烟花效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。HTML<!DOCTYPE html><html&n...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作