效果如图
<!DOCTYPE html>
<html lang="en" style='height:100%;position:relative'>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link rel="stylesheet" href="./css/main.css">
<style>
html,body {
margin:0;
overflow:hidden;
width:100%;
height:100%;
background:black;
}
</style>
</head>
<body>
<canvas id="canvas"></canvas>
</body>
</html>
<script>
var ctx=document.getElementById("canvas")
context=ctx.getContext("2d");
var WIDTH=document.documentElement.clientWidth;
var HEIGHT=document.documentElement.clientHeight;
var initRoundPopulation=180;
var round = [];
ctx.width=WIDTH;
ctx.height=HEIGHT;
function Round_item(index,x,y){
this.index=index;
this.x=x;
this.y=y;
this.r=Math.random()*2+1;
var alpha = (Math.floor(Math.random() * 10) + 1) / 10 / 2;
this.color = "rgba(255,255,255," + alpha + ")";
}
Round_item.prototype.draw = function () {
context.fillStyle = this.color;
context.shadowBlur = this.r * 2;
context.beginPath();
context.arc(this.x, this.y, this.r, 0, 2 * Math.PI, false);
context.closePath();
context.fill();
};
Round_item.prototype.move_top = function () {
this.y -= 0.15;
if (this.y <= -10) {
this.y = HEIGHT + 10;
}
this.x-=0.15;
if(this.x<=-10){
this.x=WIDTH+10
}
this.draw();
}
Round_item.prototype.move_down=function(){
this.y += 0.15;
if (this.y >HEIGHT) {
this.y = 0
}
this.x+=0.15
if(this.x>WIDTH){
this.x=0
}
if(this.x<0){
this.x=WIDTH
}
this.draw();
}
Round_item.prototype.move_2=function(){
this.y += 0.15;
if (this.y >HEIGHT) {
this.y = 0
}
this.x-=0.15
if(this.x>WIDTH){
this.x=0
}
if(this.x<0){
this.x=WIDTH
}
this.draw();
}
Round_item.prototype.move_4=function(){
this.y -= 0.15;
if (this.y<0) {
this.y = HEIGHT
}
this.x+=0.15
if(this.x>WIDTH){
this.x=0
}
if(this.x<0){
this.x=WIDTH
}
this.draw();
}
function init() {
for(var i = 0; i < initRoundPopulation; i++ ){
round[i] = new Round_item(i,Math.random() * WIDTH,Math.random() * HEIGHT);
round[i].draw();
}
animate();
}
init()
function animate() {
context.clearRect(0, 0, WIDTH, HEIGHT);
var num=initRoundPopulation/2;
for(var i in round){
if(i<=num){
if(round[i].index%2==0){round[i].move_top()}else{
round[i].move_down()
}
}else{
if(round[i].index%2==0){round[i].move_2()}else{
round[i].move_4()
}
}
}
requestAnimationFrame(animate)
}
</script>
网友评论