今天我們要談論的是HTML煙花的代碼。煙花效果是一種很有趣的特效,可以給網站增添很多生氣和活力,而HTML實現煙花的代碼也不復雜。
// HTML代碼 <canvas id="fireworks"></canvas> // CSS代碼 #fireworks { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; }
首先,我們需要在HTML中創建一個canvas元素,在此元素上實現煙花特效。接著,在CSS樣式中設置canvas元素的位置、大小和層級。為了保證煙花置于最底層,我們將z-index設置為負數。
// JavaScript代碼 var fireworks = document.getElementById("fireworks"); var ctx = fireworks.getContext("2d"); var particles = []; function animate() { ctx.clearRect(0, 0, fireworks.width, fireworks.height); requestAnimationFrame(animate); for (var i = 0; i< particles.length; i++) { particles[i].update(); } } function Particle(x, y, radius, color, dx, dy) { this.x = x; this.y = y; this.color = color; this.radius = radius; this.dx = dx; this.dy = dy; this.update = function() { this.x += this.dx; this.y += this.dy; ctx.beginPath(); ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2, false); ctx.fillStyle = this.color; ctx.fill(); if (this.y + this.radius >fireworks.height) { this.dy = -this.dy; } else { this.dy += 0.1; } if (this.x + this.radius >fireworks.width || this.x - this.radius< 0) { this.dx = -this.dx; } } } fireworks.addEventListener("click", function() { var x = event.clientX; var y = event.clientY; for (var i = 0; i< 30; i++) { var radius = Math.random() * 5 + 2; var color = 'rgb(' + Math.random() * 255 + ',' + Math.random() * 255 + ',' + Math.random() * 255 + ')'; var dx = Math.random() * 6 - 3; var dy = Math.random() * -3 - 3; particles.push(new Particle(x, y, radius, color, dx, dy)); } }); animate();
在JavaScript中,我們創建一個canvas上下文對象及一個粒子數組。然后,定義一個動畫函數,用來不斷地更新canvas上的粒子的位置及動畫。通過這個函數及requestAnimationFrame方法,我們實現了動畫效果。
接著,定義一個粒子的構造函數,并在此函數中設置粒子的初始位置、大小、顏色及速度等環境。同時,在構造函數中定義一個update函數,用來更新粒子的位置、繪制并填充不同顏色。
在煙花效果中,通過監聽canvas的click事件來觸發煙花爆炸的效果。當鼠標單擊時,將創建30個具有不同顏色、大小和速度的粒子,并添加到粒子數組中,實現爆炸效果。
最后,我們在代碼中調用animate函數,啟動動畫效果。當鼠標單擊時,就會出現煙花爆炸的效果。這就是HTML中實現煙花效果的基本代碼。
上一篇jquery 鍵盤控制器
下一篇java 右移 和除法