js实现星空案例

<!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>
发布了53 篇原创文章 · 获赞 76 · 访问量 1682

猜你喜欢

转载自blog.csdn.net/weixin_45389051/article/details/104708941
今日推荐