1 Star 0 Fork 2

JackTan / html5

forked from 帅大叔 / html5 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
starry.html 2.74 KB
一键复制 编辑 原始数据 按行查看 历史
帅大叔 提交于 2018-08-06 17:46 . add
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>星空背景</title>
<style>
html,
body {
height: 100%;
max-width: 100%;
margin: 0;
overflow: hidden;
font-family: sans-serif
}
#space {
width: 100%
}
#warp {
position: absolute;
z-index: 9;
bottom: 0;
left: 0;
right: 0;
margin: 20px auto;
color: rgba(209, 255, 255, 1);
border: 2px solid;
padding: 1em;
width: 10em;
text-align: center;
font-weight: 700;
font-size: 1.2em;
display: inline-block;
text-decoration: none;
background: rgba(0, 0, 0, 0.8)
}
</style>
</head>
<body>
<canvas id="space"></canvas>
<a href="#" id="warp">切换风格与速度</a>
<script>
//based on an Example by @curran
window.requestAnimFrame = (function(){ return window.requestAnimationFrame})();
var canvas = document.getElementById("space");
var c = canvas.getContext("2d");
var numStars = 1900;
var radius = '0.'+Math.floor(Math.random() * 9) + 1 ;
var focalLength = canvas.width *2;
var warp = 0;
var centerX, centerY;
var stars = [], star;
var i;
var animate = true;
initializeStars();
function executeFrame(){
if(animate)
requestAnimFrame(executeFrame);
moveStars();
drawStars();
}
function initializeStars(){
centerX = canvas.width / 2;
centerY = canvas.height / 2;
stars = [];
for(i = 0; i < numStars; i++){
star = {
x: Math.random() * canvas.width,
y: Math.random() * canvas.height,
z: Math.random() * canvas.width,
o: '0.'+Math.floor(Math.random() * 99) + 1
};
stars.push(star);
}
}
function moveStars(){
for(i = 0; i < numStars; i++){
star = stars[i];
star.z--;
if(star.z <= 0){
star.z = canvas.width;
}
}
}
function drawStars(){
var pixelX, pixelY, pixelRadius;
// Resize to the screen
if(canvas.width != window.innerWidth || canvas.width != window.innerWidth){
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
initializeStars();
}
if(warp==0)
{c.fillStyle = "rgba(0,10,20,1)";
c.fillRect(0,0, canvas.width, canvas.height);}
c.fillStyle = "rgba(209, 255, 255, "+radius+")";
for(i = 0; i < numStars; i++){
star = stars[i];
pixelX = (star.x - centerX) * (focalLength / star.z);
pixelX += centerX;
pixelY = (star.y - centerY) * (focalLength / star.z);
pixelY += centerY;
pixelRadius = 1 * (focalLength / star.z);
c.fillRect(pixelX, pixelY, pixelRadius, pixelRadius);
c.fillStyle = "rgba(209, 255, 255, "+star.o+")";
//c.fill();
}
}
document.getElementById('warp').addEventListener("click",function(e){
window.c.beginPath();
window.c.clearRect(0, 0, window.canvas.width, window.canvas.height);
window.warp = warp ? 0 : 1;
executeFrame();
});
executeFrame();
</script>
</body>
</html>
JavaScript
1
https://gitee.com/TPP123/html5.git
git@gitee.com:TPP123/html5.git
TPP123
html5
html5
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891