php烟花效果,JavaScript

JS烟花背景效果实现方法

本文实例讲述了JS烟花背景效果实现方法。分享给大家供大家参考。具体实现方法如下:

又一个很酷的JS烟花背景特效

var fireworks = function(){

this.size = 20;

this.rise();

}

fireworks.prototype = {

color:function(){

var c = ['0','3','6','9','c','f'];

var t = [c[Math.floor(Math.random()*100)%6],'0','f'];

t.sort(function(){return Math.random()>0.5?-1:1;});

return '#'+t.join('');

},

aheight:function(){

var h = document.documentElement.clientHeight-250;

return Math.abs(Math.floor(Math.random()*h-200))+201;

},

firecracker:function(){

var b = document.createElement('div');

var w = document.documentElement.clientWidth;

b.style.position = 'absolute';

b.style.color = this.color();

b.style.bottom = 0;

b.style.left = Math.floor(Math.random()*w)+1+'px';

document.body.appendChild(b);

return b;

},

rise:function(){

var o = this.firecracker();

var n = this.aheight();

var c = this.color;

var e = this.expl;

var s = this.size;

var k = n;

var m = function(){

o.style.bottom = parseFloat(o.style.bottom)+k*0.1+'px';

k-=k*0.1;

if(k<2){

clearInterval(clear);

e(o,n,s,c);

}

}

o.innerHTML = '.';

if(parseInt(o.style.bottom)

var clear = setInterval(m,20);

}

},

expl:function(o,n,s,c){

var R=n/3,Ri=n/6,Rii=n/9;

var r=0,ri=0,rii=0;

for(var i=0;i

var span = document.createElement('span');

var p = document.createElement('i');

var a = document.createElement('a');

span.style.position = 'absolute';

span.style.fontSize = n/10+'px';

span.style.left = 0;

span.style.top = 0;

span.innerHTML = '*';

p.style.position = 'absolute';

p.style.left = 0;

p.style.top = 0;

p.innerHTML = '*';

a.style.position = 'absolute';

a.style.left = 0;

a.style.top = 0;

a.innerHTML = '*';

o.appendChild(span);

o.appendChild(p);

o.appendChild(a);

}

function spr(){

r += R*0.1;

ri+= Ri*0.06;

rii+= Rii*0.06;

sp = o.getElementsByTagName('span');

p = o.getElementsByTagName('i');

a = o.getElementsByTagName('a');

for(var i=0; i

sp[i].style.color = c();

p[i].style.color = c();

a[i].style.color = c();

sp[i].style.left=r*Math.cos(360/s*i)+'px';

sp[i].style.top=r*Math.sin(360/s*i)+'px';

sp[i].style.fontSize=parseFloat(sp[i].style.fontSize)*0.96+'px';

p[i].style.left=ri*Math.cos(360/s*i)+'px';

p[i].style.top=ri*Math.sin(360/s*i)+'px';

p[i].style.fontSize=parseFloat(sp[i].style.fontSize)*0.96+'px';

a[i].style.left=rii*Math.cos(360/s*i)+'px';

a[i].style.top=rii*Math.sin(360/s*i)+'px';

a[i].style.fontSize=parseFloat(sp[i].style.fontSize)*0.96+'px';

}

R-=R*0.1;

if(R<2){

o.innerHTML = '';

o.parentNode.removeChild(o);

clearInterval(clearI);

}

}

var clearI = setInterval(spr,20);

}

}

window.onload = function(){

function happyNewYear(){

new fireworks();

}

setInterval(happyNewYear,1000);

}

运行效果如下所示:

希望本文所述对大家的javascript程序设计有所帮助。相关阅读:

js实现简单实用的AJAX完整实例

Android 开发随手笔记之使用摄像头拍照

在Ubuntu系统的服务器上安装Webuzo控制面板的教程

js实现jquery的offset()方法实例

jQuery实现仿QQ在线客服效果的滚动层代码

CSS样式重置代码

详解JS函数重载

深入理解JavaScript编程中的原型概念

ListView实现下拉刷新加载更多的实例代码(直接拿来用)

iOS中管理剪切板的UIPasteboard粘贴板类用法详解

2个比较经典的PHP加密解密函数分享

[Oracle] 彻底搞懂Oracle字符集

解析WPF实现音频文件循环顺序播放的解决方法

详解MySQL中SlowLog的配置方法(图文)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是一个简单的 JavaScript 代码,用于实现烟花效果: ```javascript // 获取画布元素 const canvas = document.getElementById("canvas"); // 获取画布上下文 const ctx = canvas.getContext("2d"); // 设置画布尺寸 canvas.width = window.innerWidth; canvas.height = window.innerHeight; // 创建一个数组来存储烟花对象 const fireworks = []; // 创建一个循环,每秒更新60次 setInterval(function() { // 清空画布 ctx.clearRect(0, 0, canvas.width, canvas.height); // 遍历烟花数组 for (let i = 0; i < fireworks.length; i++) { // 更新烟花 fireworks[i].update(); // 绘制烟花 fireworks[i].draw(); // 如果烟花已经消失,则从数组中移除它 if (fireworks[i].done) { fireworks.splice(i, 1); } } }, 1000 / 60); // 创建一个烟花构造函数 function Firework() { // 烟花起点坐标 this.x = Math.random() * canvas.width; this.y = canvas.height; // 烟花终点坐标 this.targetX = Math.random() * canvas.width; this.targetY = Math.random() * canvas.height; // 烟花颜色 this.color = `rgb(${Math.random() * 255}, ${Math.random() * 255}, ${Math.random() * 255})`; // 烟花半径 this.radius = 4; // 烟花速度 this.speed = 8; // 烟花加速度 this.acceleration = 1.05; // 烟花已经消失的标志 this.done = false; // 更新烟花位置 this.update = function() { // 计算距离目标点的距离 const distanceX = this.targetX - this.x; const distanceY = this.targetY - this.y; const distance = Math.sqrt(distanceX * distanceX + distanceY * distanceY); // 如果烟花已经到达目标点,则设置烟花已经消失的标志为 true if (distance < 10) { this.done = true; } // 计算烟花的速度和加速度 const speedX = distanceX / distance * this.speed; const speedY = distanceY / distance * this.speed; this.speed *= this.acceleration; // 更新烟花的位置 this.x += speedX; this.y += speedY; }; // 绘制烟花 this.draw = function() { ctx.beginPath(); ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2); ctx.fillStyle = this.color; ctx.fill(); }; } // 在每次点击鼠标时创建一个新的烟花对象 canvas.addEventListener("click", function(event) { fireworks.push(new Firework()); }); ``` 这段代码会在页面上 ### 回答2: 烟花效果是一种动态的效果,可以通过使用JavaScript来实现。以下是一个简单的实现例子: ```javascript // 获取画布元素 const canvas = document.getElementById('canvas'); const ctx = canvas.getContext('2d'); // 设置画布大小 canvas.width = window.innerWidth; canvas.height = window.innerHeight; // 烟花数组 const fireworks = []; // 烟花类 class Firework { constructor() { this.x = Math.random() * canvas.width; this.y = canvas.height; this.targetX = Math.random() * canvas.width; this.targetY = Math.random() * canvas.height / 2; this.speed = 2; this.color = `hsl(${Math.random() * 360}, 100%, 50%)`; } // 更新烟花位置 update() { this.x += (this.targetX - this.x) / 20; this.y += (this.targetY - this.y) / 20; // 绘制烟花 ctx.beginPath(); ctx.fillStyle = this.color; ctx.arc(this.x, this.y, 3, 0, Math.PI * 2); ctx.fill(); } } // 创建新的烟花 function createFirework() { fireworks.push(new Firework()); } // 动画循环 function loop() { // 清空画布 ctx.fillStyle = 'rgba(0, 0, 0, 0.1)'; ctx.fillRect(0, 0, canvas.width, canvas.height); // 更新并绘制烟花 for (let i = fireworks.length - 1; i >= 0; i--) { fireworks[i].update(); // 移除离开画布的烟花 if (fireworks[i].y <= fireworks[i].targetY) { fireworks.splice(i, 1); } } // 创建新的烟花 if (Math.random() < 0.05) { createFirework(); } // 循环调用 requestAnimationFrame(loop); } // 启动动画 loop(); ``` 你可以将上述代码放入一个HTML文件中,并在页面中添加一个具有'id="canvas"'的canvas元素即可看到烟花效果。注意,这只是一个简单的实现例子,你可以根据需求对代码进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值