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 常用操作代码
Mar 14 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
Dec 17 Javascript
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
Apr 08 Javascript
JS模式之简单的订阅者和发布者模式完整实例
Jun 30 Javascript
Node.js创建Web、TCP服务器
Dec 05 Javascript
vue返回上一页面时回到原先滚动的位置的方法
Dec 20 Javascript
微信小程序前端自定义分享的实现方法
Jun 13 Javascript
JavaScript面向对象中接口实现方法详解
Jul 24 Javascript
Vue开发中遇到的跨域问题及解决方法
Feb 11 Javascript
js实现滑动进度条效果
Aug 21 Javascript
在vue中获取wangeditor的html和text的操作
Oct 23 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
Nov 19 Vue.js
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模板之Phpbean的目录结构
2008/01/10 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
php 类中的常量、静态属性、非静态属性的区别
2017/04/09 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
2018/10/14 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
2019/10/11 PHP
php操作redis命令及代码实例大全
2020/11/19 PHP
javascript 数据类型转换(parseInt,parseFloat)
2010/07/20 Javascript
TimergliderJS 一个基于jQuery的时间轴插件
2011/12/07 Javascript
js实现翻页后保持checkbox选中状态的实现方法
2012/11/03 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
Nodejs学习笔记之测试驱动
2015/04/16 NodeJs
JS+CSS实现简易实用的滑动门菜单效果
2015/09/18 Javascript
有关文件上传 非ajax提交 得到后台数据问题
2016/10/12 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
jquery分页优化操作实例分析
2019/08/23 jQuery
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
Python调用ctypes使用C函数printf的方法
2017/08/23 Python
python 获取文件下所有文件或目录os.walk()的实例
2018/04/23 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
2018/04/23 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
2018/10/15 Python
python 中如何获取列表的索引
2019/07/02 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
python函数的万能参数传参详解
2019/07/26 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
2019/08/06 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
Python获取对象属性的几种方式小结
2020/03/12 Python
keras CNN卷积核可视化,热度图教程
2020/06/22 Python
python安装sklearn模块的方法详解
2020/11/28 Python
美国电子产品折扣网站:Daily Steals
2017/05/20 全球购物
如何强制垃圾回收
2015/10/06 面试题
水污染治理专业毕业生推荐信
2013/11/14 职场文书
环保倡议书格式范文
2014/05/14 职场文书