写一个烟花的特效

创建一个烟花特效涉及多个方面,包括动画、颜色变化、粒子效果等。以下是一个简单的基于HTML、CSS和JavaScript的烟花特效示例:

  1. HTML:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>烟花特效</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <button id="launchBtn">发射烟花</button>
    <div id="fireworksContainer"></div>
    <script src="script.js"></script>
</body>
</html>
  1. CSS (styles.css):
body, html {
    margin: 0;
    padding: 0;
    overflow: hidden;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #000;
}

#fireworksContainer {
    position: relative;
    width: 100%;
    height: 100%;
}

.firework {
    position: absolute;
    background-color: #fff;
    border-radius: 50%;
    animation: expand 1s infinite;
}

@keyframes expand {
    0% {
        transform: scale(0);
        opacity: 1;
    }
    100% {
        transform: scale(1);
        opacity: 0;
    }
}
  1. JavaScript (script.js):
document.getElementById('launchBtn').addEventListener('click', function() {
    createFirework();
});

function createFirework() {
    const firework = document.createElement('div');
    firework.className = 'firework';
    firework.style.left = `${Math.random() * 100}%`;
    firework.style.top = `${Math.random() * 100}%`;
    firework.style.backgroundColor = getRandomColor();
    document.getElementById('fireworksContainer').appendChild(firework);

    setTimeout(() => {
        firework.remove();
    }, 1000);
}

function getRandomColor() {
    const letters = '0123456789ABCDEF';
    let color = '#';
    for (let i = 0; i < 6; i++) {
        color += letters[Math.floor(Math.random() * 16)];
    }
    return color;
}

这个示例中,每次点击“发射烟花”按钮,都会在屏幕上随机位置创建一个烟花效果。烟花的颜色是随机的,并通过CSS动画实现扩散效果。当然,这只是一个非常基础的示例,你可以根据自己的需求进一步定制和优化这个特效。

posted @ 2024-12-18 06:08  王铁柱6  阅读(89)  评论(0)    收藏  举报