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 创建Dom元素
May 07 Javascript
Javascript限制网页只能在微信内置浏览器中访问
Nov 09 Javascript
JavaScript生成的动态下雨背景效果实现方法
Feb 25 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
Sep 06 Javascript
全面解析Bootstrap图片轮播效果
Dec 03 Javascript
实例详解JavaScript获取链接参数的方法
Jan 01 Javascript
canvas实现图片根据滑块放大缩小效果
Feb 24 Javascript
ES6新增数据结构WeakSet的用法详解
Aug 07 Javascript
js实现动态改变radio状态的方法
Feb 28 Javascript
vue axios 在页面切换时中断请求方法 ajax
Mar 05 Javascript
微信小程序框架wepy之动态控制类名
Sep 14 Javascript
JS代码检查工具ESLint介绍与使用方法
Feb 04 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模拟socket一次连接,多次发送数据的实现代码
2011/07/26 PHP
php mysql 封装类实例代码
2016/09/18 PHP
PHP实现下载远程图片保存到本地的方法
2017/06/19 PHP
javascript学习笔记(十三) js闭包介绍(转)
2012/06/20 Javascript
js实现幻灯片播放图片示例代码
2013/11/07 Javascript
javascript里绝对用的上的字符分割函数总结
2014/07/31 Javascript
JavaScript组件焦点与页内锚点间传值的方法
2015/02/02 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
html+js实现简单的计算器代码(加减乘除)
2016/07/12 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
解决Jquery下拉框数据动态获取的问题
2018/01/25 jQuery
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
AjaxFileUpload.js实现异步上传文件功能
2019/04/19 Javascript
JS实现判断数组是否包含某个元素示例
2019/05/24 Javascript
vue-cli基础配置及webpack配置修改的完整步骤
2019/10/20 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
javascript实现简单页面倒计时
2021/03/02 Javascript
[23:21]Ti4 冒泡赛第二轮DK vs C9 2
2014/07/14 DOTA
[41:52]2018DOTA2亚洲邀请赛3月29日小组赛B组Effect VS Secret
2018/03/30 DOTA
Python自动发送邮件的方法实例总结
2018/12/08 Python
Python面向对象之继承和多态用法分析
2019/06/08 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
攀岩、滑雪、徒步旅行装备:Black Diamond Equipment
2019/08/16 全球购物
怎样有效的进行自我评价
2013/10/06 职场文书
幼儿园数学教学反思
2014/02/02 职场文书
《每逢佳节倍思亲》教后反思
2014/04/19 职场文书
关于教师节的广播稿
2014/09/10 职场文书
2014年综合治理工作总结
2014/11/20 职场文书
医生辞职信范文
2015/03/02 职场文书
2015年七一建党节活动总结
2015/03/20 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis