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 相关文章推荐
FCK调用方法..
Dec 21 Javascript
纯JavaScript实现的完美渐变弹出层效果代码
Apr 02 Javascript
js 数值转换为3位逗号分隔的示例代码
Feb 19 Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
Mar 27 Javascript
jQuery实现带有洗牌效果的动画分页实例
Aug 31 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
Oct 02 Javascript
Angular实现下载安装包的功能代码分享
Sep 05 Javascript
js for终止循环 跳出多层循环
Oct 04 Javascript
vue+SSM实现验证码功能
Dec 07 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
Dec 30 Javascript
简单了解vue.js数组的常用操作
Jun 17 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
Feb 09 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
检查url链接是否已经有参数的php代码 添加 ? 或 &amp;
2010/02/09 PHP
ThinkPHP实现二级循环读取的方法
2014/11/03 PHP
深入讲解PHP Session及如何保持其不过期的方法
2015/08/18 PHP
Laravel实现定时任务的示例代码
2017/08/10 PHP
JS高级笔记
2011/07/13 Javascript
js中根据字数截取字符串,不能截断url
2012/01/12 Javascript
Javascript引用指针使用介绍
2012/11/07 Javascript
javascript中全局对象的isNaN()方法使用介绍
2013/12/19 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
2014/07/31 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
vue-cli单页应用改成多页应用配置详解
2017/07/14 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
微信小程序实现长按删除图片的示例
2018/05/18 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
Bootstrap 时间日历插件bootstrap-datetimepicker配置与应用小结
2019/05/28 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
2019/06/03 Javascript
vue动态子组件的两种实现方式
2019/09/01 Javascript
python基础教程之元组操作使用详解
2014/03/25 Python
使用Python的PEAK来适配协议的教程
2015/04/14 Python
python实现textrank关键词提取
2018/06/22 Python
Python实现基于PIL和tesseract的验证码识别功能示例
2018/07/11 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
2019/02/22 Python
在Python3 numpy中mean和average的区别详解
2019/08/24 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
Python类型转换的魔术方法详解
2020/12/23 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
超酷炫 CSS3垂直手风琴菜单
2016/06/28 HTML / CSS
网络工程专业毕业生推荐信
2013/10/28 职场文书
汽车运用工程系毕业生自荐信
2013/12/27 职场文书
中国入世承诺
2014/04/01 职场文书
社团活动总结模板
2014/06/30 职场文书
2014年残联工作总结
2014/11/21 职场文书
统招统分证明
2015/06/23 职场文书
婚庆答谢词大全
2015/09/29 职场文书
JavaScript控制台的更多功能
2021/04/28 Javascript
python函数的两种嵌套方法使用
2022/04/02 Python