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 相关文章推荐
一页面多XMLHttpRequest对象
Jan 22 Javascript
jQuery 定时局部刷新(setInterval)
Nov 19 Javascript
jtable列中自定义button示例代码
Nov 21 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
Sep 09 Javascript
Treegrid的动态加载实例代码
Apr 29 Javascript
基于Node.js的JavaScript项目构建工具gulp的使用教程
May 20 Javascript
JS实现的表格行上下移动操作示例
Aug 03 Javascript
Javascript(es2016) import和require用法和区别详解
Aug 11 Javascript
微信小程序之页面跳转和参数传递的实现
Sep 29 Javascript
浅析Angular19 自定义表单控件
Jan 31 Javascript
webpack实现一个行内样式px转vw的loader示例
Sep 13 Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
Dec 28 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获取网络上文件
2006/10/09 PHP
十天学会php之第十天
2006/10/09 PHP
PHP读取目录下所有文件的代码
2008/01/07 PHP
php实现文件下载(支持中文文名)
2013/12/04 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
PHP实现字母数字混合验证码功能
2019/07/11 PHP
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
基于jQuery实现的文字按钮表单特效整理
2014/12/07 Javascript
JavaScript实现数字数组正序排列的方法
2015/04/06 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
2015/04/22 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
2015/06/26 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
深究AngularJS中ng-drag、ng-drop的用法
2017/06/12 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
JavaScript面向对象的程序设计(犯迷糊的小羊)
2018/05/27 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
2018/12/06 jQuery
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
Python深入学习之闭包
2014/08/31 Python
win10下tensorflow和matplotlib安装教程
2018/09/19 Python
Python发送邮件测试报告操作实例详解
2018/12/08 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
linux面试题参考答案(3)
2012/09/13 面试题
EJB timer的种类
2014/10/28 面试题
更夫岗位责任制
2014/02/11 职场文书
领导欢迎词范文
2015/01/26 职场文书
食品仓管员岗位职责
2015/04/01 职场文书
大学入学感言
2015/08/01 职场文书
vue3使用vuedraggable实现拖拽功能
2022/04/06 Vue.js
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL