<html>

<head>

<title>星空</title>

<META http-equiv="X-UA-Compatible" content="IE=edge"></META>

<META http-equiv="Content-Type" content="text/html; charset=gb2312"/>

<script>

var BW = 800; //canvas width

var BH = 600; //canvas height

var MAX_STAR_SIZE = 3;

var MAX_STAR_SPEED = 1;

var STAR_COUNT = 120;

var BGCOLOR = "black";

var ctx;

var stars = [];



function rndf(n){

return Math.floor(Math.random()*n);

}



function rndc(n){

return Math.ceil(Math.random()*n);

}



function Star(){

this.reset = function(){

this.x = 0;

this.y = rndf(BH);

this.size = rndc(MAX_STAR_SIZE);

this.vx = MAX_STAR_SPEED*this.size/MAX_STAR_SIZE;

this.vy = 0;

this.color = "rgba("+rndf(255)+", "+rndf(255)+", "+rndf(255)+", 0.5)";

};



this.reset();

this.x = rndf(BW);

}

function render(){

ctx.globalCompositeOperation = "source-over";

ctx.fillStyle = "rgba(0, 0, 0, 0.3)";

ctx.fillRect(0, 0, BW, BH);

ctx.globalCompositeOperation = "lighter";

for(var i = 0; i < STAR_COUNT; ++i){

var p = stars[i];

ctx.beginPath();

var gradient = ctx.createRadialGradient(p.x, p.y, 0, p.x, p.y, p.size);

gradient.addColorStop(0, "white");

gradient.addColorStop(0.4, "white");

gradient.addColorStop(0.4, p.color);

gradient.addColorStop(1, "black");

ctx.fillStyle = gradient;

ctx.arc(p.x, p.y, p.size, Math.PI*2, false);

ctx.fill();

p.x += p.vx;

p.y += p.vy;



if(p.x<=0 || p.x>=BW || p.y<=0 || p.y>=BH){

p.reset();

}

}

}

function init(){

if (!window.console){

console = {log:function(){},debug:function(){}};

}

//create canvas

var cv = document.createElement('canvas');

cv.width = BW;

cv.height = BH;

cv.style.background = BGCOLOR;

document.body.appendChild(cv);

ctx = cv.getContext("2d");

//create all stars

for(var i=0;i<STAR_COUNT;++i){

var s = new Star();

stars.push(s);

}

setInterval(render, 33);

};

</script>

</head>

<body onload="init()">

<div><A href="http://www.999jiujiu.com/">http://www.999jiujiu.com/</A></div>

</body>

</html>

最新文章

  1. ffmpeg-20161104[07,10,16,21,22,27,30]-bin.7z
  2. bzoj 4557: [JLoi2016]侦察守卫 树归
  3. Programming Entity Framework 翻译(1)-目录
  4. &lt;停车位&gt;version1.0
  5. 和ef一起使用的一些知识点。
  6. iOS 修改UIWebView的UserAgent
  7. HTTP协议详解--转载http://blog.csdn.net/gueter/article/details/1524447
  8. oracle,sqlserver,mysql 命令行 开启、关闭所需要的服务
  9. Add a stylesheet link programmatically in ASP.NET
  10. Python中HTTPS连接
  11. frame,bounds,center-三者的含义
  12. Java资源大全中文版
  13. MongoDB中聚合工具Aggregate等的介绍与使用
  14. linux kernel mini2440 start.S head-common.S 部分注释
  15. Appium java环境搭建(Windows版)
  16. python简单购物车改进版
  17. NOIP模板总结
  18. 如何使用Flash抓抓狂抓取网页Flash
  19. python 爬虫部分解释
  20. C# 6.0 新特性收集

热门文章

  1. 今天了解了些redis和memcached的知识
  2. leetcode 10 Regular Expression Matching(简单正则表达式匹配)
  3. Cisco交换机解决网络蠕虫病毒入侵问题
  4. HTTP协议学习,post于get;用Fiddler测试请求
  5. SQL Server 多种分页查询效率
  6. org.mybatis.spring.mapper.MapperScannerConfigurer$Scanner$1
  7. OPENCV(4) &mdash;&mdash; ImgProc
  8. Fishing Net
  9. Network Stack‎ : HTTP Cache
  10. Fedora27 安装Adobe Flash Player PPAPI与NPAPI实现Firefox和Chromium视频播放