
简单js实现星星海特效
<body>
<span></span>
</body>
span{
width: 30px;
height: 30px;
background: url('./01-星星海特效/images/star.png') no-repeat;
position: absolute;
background-size: 100% 100%;
animation: flash 1s alternate infinite;
}
@keyframes flash {
0% {opacity:0;}
100%{opacity:1;}
}
- 在cssspan标签里添加一个星星图片,利用css动画,来控制透明度,依次实现闪烁的效果
var screenW = document.documentElement.clientWidth
var screenH = document.documentElement.clientHeight
for(var i=0;i<150;i++){
var span = document.createElement('span')
document.body.appendChild(span)
}
// 2.2 随机的坐标
var x = Math.random() * screenW
var y = Math.random() * screenH
console.log(x,y)
span.style.left = x + 'px'
span.style.top = y + 'px'
- 由于之前设置了绝对定位,所以现在可以来改变每个span的x,y的坐标
// 2.3 随机缩放
var scale = Math.random() * 1.5
span.style.transform = `scale(${scale},${scale})`
- 之前的星星大小是一样的,现在控制星星的缩放比例,来实现不同大小的星星
// 2.4频率
var rate = Math.random() * 1.5
span.style.animationDelay = rate + 's'