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 相关文章推荐
在textarea中屏蔽js的某个function的javascript代码
Apr 20 Javascript
JSON语法五大要素图文介绍
Dec 04 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
Mar 21 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
Sep 24 Javascript
使用jQuery将多条数据插入模态框的实现代码
Oct 08 Javascript
浅谈JavaScript中的String对象常用方法
Feb 25 Javascript
学习JavaScript设计模式(接口)
Nov 26 Javascript
解决element-ui中下拉菜单子选项click事件不触发的问题
Aug 22 Javascript
layui form.render('select', 'test2') 更新渲染的方法
Sep 27 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
Jan 08 Vue.js
Vue页面渲染中key的应用实例教程
Jan 12 Vue.js
深入浅析React中diff算法
May 19 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
php从数组中随机选择若干不重复元素的方法
2015/03/14 PHP
PHP利用APC模块实现大文件上传进度条的方法
2015/10/29 PHP
PHP生成唯一ID之SnowFlake算法
2016/12/17 PHP
PHP缩略图生成和图片水印制作
2017/01/07 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
jquery的键盘事件修改代码
2011/02/24 Javascript
jquery 实现窗口的最大化不论什么情况
2013/09/03 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
js事件源window.event.srcElement兼容性写法(详解)
2016/11/25 Javascript
AngularJS使用ng-app自动加载bootstrap框架问题分析
2017/01/04 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
JavaScript数据结构之数组的表示方法示例
2017/04/12 Javascript
详解10分钟学会vue滚动行为
2017/09/21 Javascript
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
2017/12/27 jQuery
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
Vue 项目分环境打包的方法示例
2018/08/03 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
vue 路由子组件created和mounted不起作用的解决方法
2019/11/05 Javascript
浅析vue-router中params和query的区别
2019/12/24 Javascript
Python yield 小结和实例
2014/04/25 Python
python学习笔记:字典的使用示例详解
2014/06/13 Python
Python中使用item()方法遍历字典的例子
2014/08/26 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
python 两个数据库postgresql对比
2019/10/21 Python
在python里创建一个任务(Task)实例
2020/04/25 Python
WebSphere面试题:在WebSphere里面如何部署一个应用
2015/08/02 面试题
四年的个人工作自我评价
2013/12/10 职场文书
《沙漠中的绿洲》教学反思
2014/04/24 职场文书
房屋出租委托书格式
2014/09/23 职场文书
学校组织向国旗敬礼活动方案(中小学适用)
2014/09/27 职场文书
法制工作总结2015
2015/07/23 职场文书
python opencv旋转图片的使用方法
2021/06/04 Python
纯CSS3实现div按照顺序出入效果
2021/07/15 HTML / CSS