实现随机显示星星特效可以使用JavaScript编程语言,在HTML和CSS文件中结合使用来实现。下面是一个完整攻略:
1. 编写HTML和CSS
首先,在HTML文件中创建一个用于呈现星星特效的 div 元素,给它一个适当的 ID。
<div id="stars"></div>
接下来,在CSS文件中设置该 div 元素的样式,包括宽度、高度、背景颜色等。这些样式将为星星特效奠定基础。不仅如此,还需要准备好调用星星特效用到的样式,例如:
.stars {
position: absolute;
border-radius: 50%;
background-color: rgba(255, 255, 255, 0.8);
box-shadow: 0px 0px 2px #fff,
0px 0px 10px #fff,
0px 0px 20px #fff,
0px 0px 30px #fff;
animation: twinkle .5s ease-in-out infinite alternate;
z-index: -1;
}
@keyframes twinkle {
from { opacity: 1; transform:scale(1); }
to { opacity: 0; transform:scale(2); }
}
其中的 .stars 样式是本特效的主要样式,animation属性制定了一个twinkle动画,表示一个星星的闪烁。
2. 编写JavaScript
接下来,在JavaScript文件中编写代码实现随机显示星星特效。
2.1 创建星星数量
通过 JavaScript 的 createElement() 方法和 appendChild() 方法创建星星。
const stars = document.getElementById('stars');
const NUM_STARS = 100;
for (let i = 0; i < NUM_STARS; i++) {
const star = document.createElement('div');
star.classList.add('stars');
stars.appendChild(star);
}
该代码使用了常量 NUM_STARS 表示星星的数量,使用了一个 for 循环来实例化每个星星,然后将它们添加到之前创建的 stars div 元素内。
2.2 星星动画
为了使星星能够动起来,需要使用 JavaScript 创建一个新的 CSS 动画。这个动画会让星星来回闪烁。
const style = document.createElement('style');
document.head.appendChild(style);
style.sheet.insertRule(`
@keyframes twinkle {
from {
opacity: 1;
transform: scale(1);
}
to {
opacity: 0;
transform: scale(2);
}
}
`);
const starsArray = Array.from(stars.children);
starsArray.forEach((s) => {
const TWINKLE_TIME = Math.floor(Math.random() * 10) + 5;
const TWINKLE_DELAY = Math.floor(Math.random() * 10) / 10;
s.style.animationDuration = `${TWINKLE_TIME}s`;
s.style.animationDelay = `${TWINKLE_DELAY}s`;
});
这段代码创建了一个