<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>星星闪烁</title>
</head>
<body style="background:#000">
<div id="stars"></div>
<script>
var stars=document.getElementById('stars'); //获取id为star_box的元素
function drawStar(){ // 方法drawStar
var odiv = document.createElement('div'); //创建div
odiv.style.width = '7px';
odiv.style.height = '7px';
odiv.style.position = 'relative'; //设置div为相对定位
odiv.style.left = Math.floor(document.body.clientWidth*Math.random())+'px'; //div的left值不能超出屏幕的宽度
odiv.style.top = Math.floor(document.body.clientHeight*Math.random())+'px';//div的top值不能超出屏幕的高度
odiv.style.overflow = 'hidden'; //设置div的overflow为hidden
stars.appendChild(odiv); //添加div到stars_box元素里面
var ostar = document.createElement('img'); //再创建img元素
ostar.style.width = '49px';
ostar.style.height = '7px';
ostar.src = './images/star.png';
ostar.style.position = 'absolute'; //设置img为绝对定位
ostar.style.top = '0px';
ostar.style.left = '0px';
odiv.appendChild(ostar); //把img添加到div中
Play(ostar); //实现动画闪烁的方法Play();
}
//让星星闪烁
function Play(ele){
var i = Math.floor(Math.random()*7); //为了使星星不同时闪烁,设置随机值
var timer = setInterval(function(){ //每100ms执行一次匿名方法
//从某个位置开始增加然后到达一定程度最大宽为42的时候置为0
if(i<7){
ele.style.left = -i*7+'px';
i++;
}else{
i = 0;
}
},100);
}
//使用for循环创建30个不同的对象
for(var i=0; i<30; i++){
drawStar();
}
</script>
</body>
</html>
js实现星空案例
猜你喜欢
转载自blog.csdn.net/weixin_45389051/article/details/104708941
今日推荐
周排行