js实现宇宙星空背景效果的方法


Posted in Javascript onMarch 03, 2015

本文实例讲述了js实现宇宙星空背景效果的方法。分享给大家供大家参考。具体实现方法如下:

<!DOCTYPE html PUBLIC "-//W3C//h2D XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/h2D/xhtml1-transitional.h2d">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<TITLE>宇宙星空背景效果,Js特效</TITLE>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<style type="text/css"> 

.star {

position:absolute;

layer-background-color:white;

visibility:visible;

top:-50px;

width:50px;

height:50px;

font-size:1px;

background-color:white;

}

.60pt{font-size:60pt;color:#ff66cc;}

</style>

<SCRIPT LANGUAGE="JavaScript"> 

<!--

var starnum = 75; // 星星的数目

var isNS = (document.layers);

var _all = (isNS)? '' : 'all.';

var _style = (isNS) ? '' : '.style';

var xoffset, yoffset, w_x, w_y, tmpx, tmpy, scrlx, scrly;

function getstartpos(obj) {  //定义星星移动的起始位置

obj.deltay = Math.floor(Math.random() * 12);    //用随机函数决定

obj.deltax = Math.floor(Math.random() * 12);

obj.xdir = (Math.floor(Math.random() * 2) == 1) ? '+' : '-';

obj.ydir = (Math.floor(Math.random() * 2) == 1) ? '+' : '-';

obj.counter = 1;

if (isNS) {

obj.clip.width = 1;

obj.clip.height = 1;

obj.moveTo(xoffset+pageXOffset, yoffset+pageYOffset);

} else {

obj.width = 1;

obj.height = 1; 

obj.pixelTop = yoffset+document.body.scrollTop;

obj.pixelLeft = xoffset+document.body.scrollLeft;

   }

}

function movestar(starN)   //移动星星的位置

{

tmpx = starN.deltax*starN.counter+starN.counter;

tmpy = starN.deltay*starN.counter+starN.counter;

if (isNS) {

starN.clip.width = starN.counter / 3;

starN.clip.height = starN.counter / 3;

scrlx = pageXOffset;

scrly = pageYOffset;

if ((starN.left+tmpx >= w_x+scrlx) || (starN.top+tmpy >= w_y+scrly) || (starN.left-tmpx <= scrlx) || (starN.top-tmpy <= scrly)) {

getstartpos(starN);

} else {

eval('starN.moveBy('+starN.xdir+tmpx+', '+starN.ydir+tmpy+')');

   }

} else {

starN.width = starN.counter/3;

starN.height = starN.counter/3;

scrlx = document.body.scrollLeft;

scrly = document.body.scrollTop;

if ((starN.pixelLeft+tmpx >= w_x+scrlx)||(starN.pixelTop+tmpy >= w_y+scrly) || (starN.pixelLeft-tmpx <= scrlx)||(starN.pixelTop-tmpy <= scrly)) {

getstartpos(starN);

} else {

eval('starN.pixelTop'+starN.ydir+'=tmpy');

eval('starN.pixelLeft'+starN.xdir+'=tmpx');

   }

}

starN.counter++;

}

function animate() //让所有的星星动起来

{

for(i=1; i <= starnum; i++) {

movestar(eval('star'+i));

}

setTimeout('animate()', 100);

}

 

function findwindowparams() {  //定义星星移动的起始位置

w_x = (isNS) ? window.innerWidth : document.body.clientWidth;

w_y = (isNS) ? window.innerHeight : document.body.clientHeight;

xoffset = w_x / 2;

yoffset = w_y / 2;

for (i = 1; i <= starnum; i++) {

getstartpos(eval('star'+i));

   }

}

function resizeNS() {

setTimeout('document.location.reload()', 400);

}

(isNS) ? window.onresize = resizeNS : window.onresize = findwindowparams;

window.onload = new Function("findwindowparams(); animate();");

-->

</script>

</HEAD>

<BODY>

<body  bgcolor=#999999>

<SCRIPT LANGUAGE="JavaScript"> 

<!--

for (i = 1; i <= starnum; i++) { //给星星定义层

document.writeln('<div id="star'+i+'" class="star"></div>');

eval('var star'+i+'=document.'+_all+'star'+i+_style);

}

-->

</script>

<p><center>

<font class=60pt><br>飞翔在<br>宇宙的星空中<br></font>

</center><p>

</body>

</html>

运行效果如下图所示:

js实现宇宙星空背景效果的方法

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
jQuery 使用手册(一)
Sep 23 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
Oct 20 Javascript
javascript的switch用法注意事项分析
Feb 02 Javascript
jqGrid表格应用之新增与删除数据附源码下载
Dec 02 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
Feb 18 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
Mar 28 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
Jan 04 Javascript
JavaScript函数节流的两种写法
Apr 07 Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
Jan 12 Javascript
mpvue写一个CPASS小程序的示例
Sep 04 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
Jul 21 Javascript
js实现简单页面全屏
Sep 17 Javascript
Angular中的Promise对象($q介绍)
Mar 03 #Javascript
Javascript设计模式之观察者模式的多个实现版本实例
Mar 03 #Javascript
Node.js 学习笔记之简介、安装及配置
Mar 03 #Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
Mar 03 #Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
Mar 03 #Javascript
JS实现鼠标点击展开或隐藏表格行的方法
Mar 03 #Javascript
浅谈JavaScript数据类型
Mar 03 #Javascript
You might like
NOT NULL 和NULL
2007/01/15 PHP
Ajax实现对静态页面的文章访问统计功能示例
2016/10/10 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
jQuery Dialog 弹出层对话框插件
2010/08/09 Javascript
Javascript计算时间差的函数分享
2011/07/04 Javascript
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)
2014/10/16 Javascript
angular中使用路由和$location切换视图
2015/01/23 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
Vue实现购物车功能
2017/04/27 Javascript
react native 获取地理位置的方法示例
2018/08/28 Javascript
layui 数据表格复选框实现单选功能的例子
2019/09/19 Javascript
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
[00:20]TI9不朽观赛名额抽取
2019/08/05 DOTA
详解Python程序与服务器连接的WSGI接口
2015/04/29 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
python使用TensorFlow进行图像处理的方法
2018/02/28 Python
sublime python3 输入换行不结束的方法
2018/04/19 Python
关于Python 的简单栅格图像边界提取方法
2019/07/05 Python
django迁移文件migrations的实现
2020/03/31 Python
python判断元素是否存在的实例方法
2020/09/24 Python
Trina Turk官网:美国时装和泳装品牌
2018/06/10 全球购物
西班牙三叶草药房:Farmacias Trébol
2019/05/03 全球购物
Farfetch澳大利亚官网:Farfetch Australia
2020/04/26 全球购物
Java面试题:Java类的Main方法如果是Private将会怎么样
2016/08/18 面试题
公关关系专员的自我评价分享
2013/11/20 职场文书
电子商务专业学生职业生涯规划
2014/03/07 职场文书
运动会演讲稿300字
2014/08/25 职场文书
开学典礼观后感
2015/06/15 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书
vue+spring boot实现校验码功能
2021/05/27 Vue.js
vue中data里面的数据相互使用方式
2022/06/05 Vue.js
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript
python 镜像环境搭建总结
2022/09/23 Python