HTML5梦幻星空,可用作网页背景
<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>
最新文章
- ffmpeg-20161104[07,10,16,21,22,27,30]-bin.7z
- bzoj 4557: [JLoi2016]侦察守卫 树归
- Programming Entity Framework 翻译(1)-目录
- <;停车位>;version1.0
- 和ef一起使用的一些知识点。
- iOS 修改UIWebView的UserAgent
- HTTP协议详解--转载http://blog.csdn.net/gueter/article/details/1524447
- oracle,sqlserver,mysql 命令行 开启、关闭所需要的服务
- Add a stylesheet link programmatically in ASP.NET
- Python中HTTPS连接
- frame,bounds,center-三者的含义
- Java资源大全中文版
- MongoDB中聚合工具Aggregate等的介绍与使用
- linux kernel mini2440 start.S head-common.S 部分注释
- Appium java环境搭建(Windows版)
- python简单购物车改进版
- NOIP模板总结
- 如何使用Flash抓抓狂抓取网页Flash
- python 爬虫部分解释
- C# 6.0 新特性收集
热门文章
- 今天了解了些redis和memcached的知识
- leetcode 10 Regular Expression Matching(简单正则表达式匹配)
- Cisco交换机解决网络蠕虫病毒入侵问题
- HTTP协议学习,post于get;用Fiddler测试请求
- SQL Server 多种分页查询效率
- org.mybatis.spring.mapper.MapperScannerConfigurer$Scanner$1
- OPENCV(4) &mdash;&mdash; ImgProc
- Fishing Net
- Network Stack : HTTP Cache
- Fedora27 安装Adobe Flash Player PPAPI与NPAPI实现Firefox和Chromium视频播放