HTML作為網(wǎng)頁(yè)的基礎(chǔ)語(yǔ)言,可以幫助我們實(shí)現(xiàn)很多炫酷的效果。今天我要分享的是使用HTML實(shí)現(xiàn)的煙花表白。如果你想在情人節(jié)或者特殊的日子里給TA一個(gè)驚喜,就可以試試這個(gè)方法。
首先,我們需要在HTML中插入一個(gè)canvas標(biāo)簽,用于繪制煙花效果。代碼如下:
<canvas id="fireworks"></canvas>
接下來(lái),我們需要添加一些JavaScript代碼,用于控制煙花的運(yùn)動(dòng)軌跡和爆炸效果。這里我提供一個(gè)基礎(chǔ)的代碼,你可以自己根據(jù)需求進(jìn)行修改:
//獲取canvas畫(huà)布 var canvas = document.getElementById('fireworks'); var ctx = canvas.getContext('2d'); //設(shè)置爆炸半徑 var radius = 4; function Firework(x, y) { this.x = x; this.y = y; this.vx = Math.random() * 20 - 10; this.vy = Math.random() * -20 - 10; this.alpha = 1; this.color = 'rgb(' + Math.floor(Math.random() * 256) + ',' + Math.floor(Math.random() * 256) + ',' + Math.floor(Math.random() * 256) + ')'; } Firework.prototype.update = function() { this.x += this.vx; this.y += this.vy; this.vy += 0.2; this.alpha -= 0.005; if (this.alpha<= 0) { fireworks.splice(fireworks.indexOf(this), 1); } }; Firework.prototype.draw = function() { ctx.beginPath(); ctx.arc(this.x, this.y, radius, 0, 2 * Math.PI, false); ctx.fillStyle = this.color; ctx.globalAlpha = this.alpha; ctx.fill(); }; var fireworks = []; function animate() { requestAnimationFrame(animate); ctx.clearRect(0, 0, canvas.width, canvas.height); if (Math.random()< 0.05) { fireworks.push(new Firework(Math.random() * canvas.width, canvas.height)); } for (var i = 0; i< fireworks.length; i++) { fireworks[i].update(); fireworks[i].draw(); } } animate();
最后,我們可以使用CSS對(duì)煙花進(jìn)行美化,比如設(shè)置背景為黑色、將canvas居中等。代碼如下:
#fireworks { width: 100%; height: 100%; background-color: black; position: fixed; top: 0; left: 0; z-index: -1; }
現(xiàn)在你已經(jīng)完成了煙花表白的HTML源代碼。當(dāng)你打開(kāi)這個(gè)頁(yè)面時(shí),你會(huì)看到屏幕上出現(xiàn)了一個(gè)黑色背景的畫(huà)布,然后不斷出現(xiàn)炫酷的煙花效果。相信在情人節(jié)這一天,這個(gè)表白方式一定能夠讓你成功告白。