“clock.js”应该在网页的右上角放置一个实时时钟,“sparkles.js”每次移动时都会在光标下方放置火花。
<!DOCTYPE html>
<html>
<head>
<script src="/clock.js"></script>
<link rel="shortcut icon" href="icon.ico">
<link rel="apple-touch-icon" href="icon.ico"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Title</title>
<script src="/sparkles.js"></script>
</head>
</html>
但是我只能让其中一个工作,我可以将整个代码放入两个(或仅一个)中,并且它只优先考虑其中一个。我可以根据需要将它们放置得尽可能远或靠近,但它仍然不起作用。是否压缩 js 文件中的 javascript 并不重要。我到处寻找答案但一无所获。
// <![CDATA[
var colour="#000000";
var clock_size=8;
var clok;
var cpos=0;
var newx=xmo=100;
var newy=ymo=30;
window.onload=function() { if (document.getElementById) {
clok=document.createElement("div");
clok.style.position="absolute";
clok.appendChild(createDigit("dig0"));
clok.appendChild(createDigit("dig1"));
clok.appendChild(createColon());
clok.appendChild(createDigit("dig2"));
clok.appendChild(createDigit("dig3"));
clok.appendChild(createColon("ms"));
clok.appendChild(createDigit("dig4"));
clok.appendChild(createDigit("dig5"));
document.body.appendChild(clok);
tick();
}}
var digit=new Array(247, 146, 221, 219, 186, 235, 239, 210, 255, 251);
function tick() {
var now=new Date();
var t=Math.floor(now.getTime()/500)%2;
var i, j, k;
var won=oo(now.getHours())+oo(now.getMinutes())+oo(now.getSeconds());
for (i=0; i<6; i++) for (j=0; j<7; j++) {
k=digit[won.substring(i, i+1)].toString(2).substring(j+1, j+2);
document.getElementById("dig"+i+j).style.backgroundColor=(k==1)?colour:"transparent";
}
document.getElementById("mstop").style.backgroundColor=(t)?"transparent":colour;
document.getElementById("msbot").style.backgroundColor=(t)?"transparent":colour;
xmo+=Math.floor((newx-xmo)/4);
clok.style.left=Math.round(xmo-(clock_size+2)*4)+"px";
ymo+=Math.floor((newy-ymo)/4);
clok.style.top=Math.round(ymo-clock_size*2.5)+"px";
setTimeout("tick()", 40);
}
function scro() {
var scro=0;
if (document.body.scrollTop) scro=document.body.scrollTop;
else if (document.documentElement && document.documentElement.scrollTop) scro=document.documentElement.scrollTop;
return (scro);
}
function oo(o) { return(((o<10)?"0"+o:o).toString()); }
function createDigit(id) {
var odiv=createDiv(0, cpos, clock_size+clock_size+2, clock_size+2, false);
cpos+=clock_size+4;
odiv.appendChild(createDiv(0, 1, 2, clock_size, id+"0"));
odiv.appendChild(createDiv(1, 0, clock_size, 2, id+"1"));
odiv.appendChild(createDiv(1, clock_size, clock_size, 2, id+"2"));
odiv.appendChild(createDiv(clock_size, 1, 2, clock_size, id+"3"));
odiv.appendChild(createDiv(clock_size+1, 0, clock_size, 2, id+"4"));
odiv.appendChild(createDiv(clock_size+1, clock_size, clock_size, 2, id+"5"));
odiv.appendChild(createDiv(clock_size+clock_size, 1, 2, clock_size, id+"6"));
return (odiv);
}
function createColon(id) {
var odiv=createDiv(0, cpos, clock_size+clock_size+2, 2, false);
cpos+=4;
var dot1=createDiv(4, 0, 3, 2, (id)?id+"top":false);
dot1.style.backgroundColor=colour;
odiv.appendChild(dot1);
var dot2=createDiv(clock_size+clock_size-5, 0, 3, 2, (id)?id+"bot":false);
dot2.style.backgroundColor=colour;
odiv.appendChild(dot2);
return (odiv);
}
function createDiv(top, left, height, width, id) {
var div=document.createElement("div");
div.style.position="absolute";
div.style.top=top+"px";
div.style.left=left+"px";
div.style.height=height+"px";
div.style.width=width+"px";
div.style.overflow="hidden";
if (id) div.setAttribute("id", id);
return (div);
}
// ]]>
// <![CDATA[
var colour="#FFFFFF";
var sparkles=120;
var x=ox=400;
var y=oy=300;
var swide=800;
var shigh=600;
var sleft=sdown=0;
var tiny=new Array();
var star=new Array();
var starv=new Array();
var starx=new Array();
var stary=new Array();
var tinyx=new Array();
var tinyy=new Array();
var tinyv=new Array();
window.onload=function() { if (document.getElementById) {
var i, rats, rlef, rdow;
for (var i=0; i<sparkles; i++) {
var rats=createDiv(3, 3);
rats.style.visibility="hidden";
document.body.appendChild(tiny[i]=rats);
starv[i]=0;
tinyv[i]=0;
var rats=createDiv(5, 5);
rats.style.backgroundColor="transparent";
rats.style.visibility="hidden";
var rlef=createDiv(1, 5);
var rdow=createDiv(5, 1);
rats.appendChild(rlef);
rats.appendChild(rdow);
rlef.style.top="2px";
rlef.style.left="0px";
rdow.style.top="0px";
rdow.style.left="2px";
document.body.appendChild(star[i]=rats);
}
set_width();
sparkle();
}}
function sparkle() {
var c;
if (x!=ox || y!=oy) {
ox=x;
oy=y;
for (c=0; c<sparkles; c++) if (!starv[c]) {
star[c].style.left=(starx[c]=x)+"px";
star[c].style.top=(stary[c]=y)+"px";
star[c].style.clip="rect(0px, 5px, 5px, 0px)";
star[c].style.visibility="visible";
starv[c]=50;
break;
}
}
for (c=0; c<sparkles; c++) {
if (starv[c]) update_star(c);
if (tinyv[c]) update_tiny(c);
}
setTimeout("sparkle()", 40);
}
function update_star(i) {
if (--starv[i]==25) star[i].style.clip="rect(1px, 4px, 4px, 1px)";
if (starv[i]) {
stary[i]+=1+Math.random()*3;
if (stary[i]<shigh+sdown) {
star[i].style.top=stary[i]+"px";
starx[i]+=(i%5-2)/5;
star[i].style.left=starx[i]+"px";
}
else {
star[i].style.visibility="hidden";
starv[i]=0;
return;
}
}
else {
tinyv[i]=50;
tiny[i].style.top=(tinyy[i]=stary[i])+"px";
tiny[i].style.left=(tinyx[i]=starx[i])+"px";
tiny[i].style.width="2px";
tiny[i].style.height="2px";
star[i].style.visibility="hidden";
tiny[i].style.visibility="visible"
}
}
function update_tiny(i) {
if (--tinyv[i]==25) {
tiny[i].style.width="1px";
tiny[i].style.height="1px";
}
if (tinyv[i]) {
tinyy[i]+=1+Math.random()*3;
if (tinyy[i]<shigh+sdown) {
tiny[i].style.top=tinyy[i]+"px";
tinyx[i]+=(i%5-2)/5;
tiny[i].style.left=tinyx[i]+"px";
}
else {
tiny[i].style.visibility="hidden";
tinyv[i]=0;
return;
}
}
else tiny[i].style.visibility="hidden";
}
document.onmousemove=mouse;
function mouse(e) {
set_scroll();
y=(e)?e.pageY:event.y+sdown;
x=(e)?e.pageX:event.x+sleft;
}
function set_scroll() {
if (typeof(self.pageYOffset)=="number") {
sdown=self.pageYOffset;
sleft=self.pageXOffset;
}
else if (document.body.scrollTop || document.body.scrollLeft) {
sdown=document.body.scrollTop;
sleft=document.body.scrollLeft;
}
else if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)) {
sleft=document.documentElement.scrollLeft;
sdown=document.documentElement.scrollTop;
}
else {
sdown=0;
sleft=0;
}
}
window.onresize=set_width;
function set_width() {
if (typeof(self.innerWidth)=="number") {
swide=self.innerWidth;
shigh=self.innerHeight;
}
else if (document.documentElement && document.documentElement.clientWidth) {
swide=document.documentElement.clientWidth;
shigh=document.documentElement.clientHeight;
}
else if (document.body.clientWidth) {
swide=document.body.clientWidth;
shigh=document.body.clientHeight;
}
}
function createDiv(height, width) {
var div=document.createElement("div");
div.style.position="absolute";
div.style.height=height+"px";
div.style.width=width+"px";
div.style.overflow="hidden";
div.style.backgroundColor=colour;
return (div);
}
// ]]>
<!DOCTYPE html>
<html>
<head>
<script src="/clock.js"></script>
<link rel="shortcut icon" href="icon.ico">
<link rel="apple-touch-icon" href="icon.ico"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Title</title>
<script src="/sparkles.js"></script>
</head>
</html>
好的,我解决了。只需首先使用 Sparkles 脚本,然后使用 Clock 脚本。而且我没有同时加载时钟和 Sparkles 函数,而是将时钟函数的加载时间更改为页面加载后 100 毫秒。之后就可以了。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>
<!-- sparkles script -->
<script>
var colour="random"; // "random" can be replaced with any valid colour ie: "red"...
var sparkles=100;// increase of decrease for number of sparkles falling
var x=ox=400;
var y=oy=300;
var swide=800;
var shigh=600;
var sleft=sdown=0;
var tiny=new Array();
var star=new Array();
var starv=new Array();
var starx=new Array();
var stary=new Array();
var tinyx=new Array();
var tinyy=new Array();
var tinyv=new Array();
colours=new Array('#ff0000','#00ff00','#ffffff','#ff00ff','#ffa500','#ffff00','#00ff00','#ffffff','ff00ff')
n = 10;
y = 0;
x = 0;
n6=(document.getElementById&&!document.all);
ns=(document.layers);
ie=(document.all);
d=(ns||ie)?'document.':'document.getElementById("';
a=(ns||n6)?'':'all.';
n6r=(n6)?'")':'';
s=(ns)?'':'.style';
if (ns){
for (i = 0; i < n; i++)
document.write('<layer name="dots'+i+'" top=0 left=0 width='+i/2+' height='+i/2+' bgcolor=#ff0000></layer>');
}
if (ie)
document.write('<div id="con" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
if (ie||n6){
for (i = 0; i < n; i++)
document.write('<div id="dots'+i+'" style="position:absolute;top:0px;left:0px;width:'+i/2+'px;height:'+i/2+'px;background:#ff0000;font-size:'+i/2+'"></div>');
}
if (ie)
document.write('</div></div>');
(ns||n6)?window.captureEvents(Event.MOUSEMOVE):0;
function Mouse(evnt){
y = (ns||n6)?evnt.pageY+4 - window.pageYOffset:event.y+4;
x = (ns||n6)?evnt.pageX+1:event.x+1;
}
(ns)?window.onMouseMove=Mouse:document.onmousemove=Mouse;
function animate(){
o=(ns||n6)?window.pageYOffset:0;
if (ie)con.style.top=document.body.scrollTop + 'px';
for (i = 0; i < n; i++){
var temp1 = eval(d+a+"dots"+i+n6r+s);
randcolours = colours[Math.floor(Math.random()*colours.length)];
(ns)?temp1.bgColor = randcolours:temp1.background = randcolours;
if (i < n-1){
var temp2 = eval(d+a+"dots"+(i+1)+n6r+s);
temp1.top = parseInt(temp2.top) + 'px';
temp1.left = parseInt(temp2.left) + 'px';
}
else{
temp1.top = y+o + 'px';
temp1.left = x + 'px';
}
}
setTimeout("animate()",10);
}
animate();
window.onload=function() { if (document.getElementById) {
var i, rats, rlef, rdow;
for (var i=0; i<sparkles; i++) {
var rats=createDiv(3, 3);
rats.style.visibility="hidden";
rats.style.zIndex="999";
document.body.appendChild(tiny[i]=rats);
starv[i]=0;
tinyv[i]=0;
var rats=createDiv(5, 5);
rats.style.backgroundColor="transparent";
rats.style.visibility="hidden";
rats.style.zIndex="999";
var rlef=createDiv(1, 5);
var rdow=createDiv(5, 1);
rats.appendChild(rlef);
rats.appendChild(rdow);
rlef.style.top="2px";
rlef.style.left="0px";
rdow.style.top="0px";
rdow.style.left="2px";
document.body.appendChild(star[i]=rats);
}
set_width();
sparkle();
}}
function sparkle() {
var c;
if (Math.abs(x-ox)>1 || Math.abs(y-oy)>1) {
ox=x;
oy=y;
for (c=0; c<sparkles; c++) if (!starv[c]) {
star[c].style.left=(starx[c]=x)+"px";
star[c].style.top=(stary[c]=y+1)+"px";
star[c].style.clip="rect(0px, 5px, 5px, 0px)";
star[c].childNodes[0].style.backgroundColor=star[c].childNodes[1].style.backgroundColor=(colour=="random")?newColour():colour;
star[c].style.visibility="visible";
starv[c]=50;
break;
}
}
for (c=0; c<sparkles; c++) {
if (starv[c]) update_star(c);
if (tinyv[c]) update_tiny(c);
}
setTimeout("sparkle()", 40);
}
function update_star(i) {
if (--starv[i]==25) star[i].style.clip="rect(1px, 4px, 4px, 1px)";
if (starv[i]) {
stary[i]+=1+Math.random()*3;
starx[i]+=(i%5-2)/5;
if (stary[i]<shigh+sdown) {
star[i].style.top=stary[i]+"px";
star[i].style.left=starx[i]+"px";
}
else {
star[i].style.visibility="hidden";
starv[i]=0;
return;
}
}
else {
tinyv[i]=50;
tiny[i].style.top=(tinyy[i]=stary[i])+"px";
tiny[i].style.left=(tinyx[i]=starx[i])+"px";
tiny[i].style.width="2px";
tiny[i].style.height="2px";
tiny[i].style.backgroundColor=star[i].childNodes[0].style.backgroundColor;
star[i].style.visibility="hidden";
tiny[i].style.visibility="visible"
}
}
function update_tiny(i) {
if (--tinyv[i]==25) {
tiny[i].style.width="1px";
tiny[i].style.height="1px";
}
if (tinyv[i]) {
tinyy[i]+=1+Math.random()*3;
tinyx[i]+=(i%5-2)/5;
if (tinyy[i]<shigh+sdown) {
tiny[i].style.top=tinyy[i]+"px";
tiny[i].style.left=tinyx[i]+"px";
}
else {
tiny[i].style.visibility="hidden";
tinyv[i]=0;
return;
}
}
else tiny[i].style.visibility="hidden";
}
document.onmousemove=mouse;
function mouse(e) {
if (e) {
y=e.pageY;
x=e.pageX;
}
else {
set_scroll();
y=event.y+sdown;
x=event.x+sleft;
}
}
window.onscroll=set_scroll;
function set_scroll() {
if (typeof(self.pageYOffset)=='number') {
sdown=self.pageYOffset;
sleft=self.pageXOffset;
}
else if (document.body && (document.body.scrollTop || document.body.scrollLeft)) {
sdown=document.body.scrollTop;
sleft=document.body.scrollLeft;
}
else if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)) {
sleft=document.documentElement.scrollLeft;
sdown=document.documentElement.scrollTop;
}
else {
sdown=0;
sleft=0;
}
}
window.onresize=set_width;
function set_width() {
var sw_min=999999;
var sh_min=999999;
if (document.documentElement && document.documentElement.clientWidth) {
if (document.documentElement.clientWidth>0) sw_min=document.documentElement.clientWidth;
if (document.documentElement.clientHeight>0) sh_min=document.documentElement.clientHeight;
}
if (typeof(self.innerWidth)=='number' && self.innerWidth) {
if (self.innerWidth>0 && self.innerWidth<sw_min) sw_min=self.innerWidth;
if (self.innerHeight>0 && self.innerHeight<sh_min) sh_min=self.innerHeight;
}
if (document.body.clientWidth) {
if (document.body.clientWidth>0 && document.body.clientWidth<sw_min) sw_min=document.body.clientWidth;
if (document.body.clientHeight>0 && document.body.clientHeight<sh_min) sh_min=document.body.clientHeight;
}
if (sw_min==999999 || sh_min==999999) {
sw_min=800;
sh_min=600;
}
swide=sw_min;
shigh=sh_min;
}
function createDiv(height, width) {
var div=document.createElement("div");
div.style.position="absolute";
div.style.height=height+"px";
div.style.width=width+"px";
div.style.overflow="hidden";
return (div);
}
function newColour() {
var c=new Array();
c[0]=255;
c[1]=Math.floor(Math.random()*256);
c[2]=Math.floor(Math.random()*(256-c[1]/2));
c.sort(function(){return (0.5 - Math.random());});
return ("rgb("+c[0]+", "+c[1]+", "+c[2]+")");
}
</script>
</div>
<!-- clock script -->
<div>
<script>
var colour="#000000";
var clock_size=8;
var clok;
var cpos=0;
var newx=xmo=100;
var newy=ymo=30;
setTimeout(function() { if (document.getElementById) {
clok=document.createElement("div");
clok.style.position="absolute";
clok.appendChild(createDigit("dig0"));
clok.appendChild(createDigit("dig1"));
clok.appendChild(createColon());
clok.appendChild(createDigit("dig2"));
clok.appendChild(createDigit("dig3"));
clok.appendChild(createColon("ms"));
clok.appendChild(createDigit("dig4"));
clok.appendChild(createDigit("dig5"));
document.body.appendChild(clok);
tick();
}},100);
var digit=new Array(247, 146, 221, 219, 186, 235, 239, 210, 255, 251);
function tick() {
var now=new Date();
var t=Math.floor(now.getTime()/500)%2;
var i, j, k;
var won=oo(now.getHours())+oo(now.getMinutes())+oo(now.getSeconds());
for (i=0; i<6; i++) for (j=0; j<7; j++) {
k=digit[won.substring(i, i+1)].toString(2).substring(j+1, j+2);
document.getElementById("dig"+i+j).style.backgroundColor=(k==1)?colour:"transparent";
}
document.getElementById("mstop").style.backgroundColor=(t)?"transparent":colour;
document.getElementById("msbot").style.backgroundColor=(t)?"transparent":colour;
xmo+=Math.floor((newx-xmo)/4);
clok.style.left=Math.round(xmo-(clock_size+2)*4)+"px";
ymo+=Math.floor((newy-ymo)/4);
clok.style.top=Math.round(ymo-clock_size*2.5)+"px";
setTimeout("tick()", 40);
}
function scro() {
var scro=0;
if (document.body.scrollTop) scro=document.body.scrollTop;
else if (document.documentElement && document.documentElement.scrollTop) scro=document.documentElement.scrollTop;
return (scro);
}
function oo(o) { return(((o<10)?"0"+o:o).toString()); }
function createDigit(id) {
var odiv=createDiv(0, cpos, clock_size+clock_size+2, clock_size+2, false);
cpos+=clock_size+4;
odiv.appendChild(createDiv(0, 1, 2, clock_size, id+"0"));
odiv.appendChild(createDiv(1, 0, clock_size, 2, id+"1"));
odiv.appendChild(createDiv(1, clock_size, clock_size, 2, id+"2"));
odiv.appendChild(createDiv(clock_size, 1, 2, clock_size, id+"3"));
odiv.appendChild(createDiv(clock_size+1, 0, clock_size, 2, id+"4"));
odiv.appendChild(createDiv(clock_size+1, clock_size, clock_size, 2, id+"5"));
odiv.appendChild(createDiv(clock_size+clock_size, 1, 2, clock_size, id+"6"));
return (odiv);
}
function createColon(id) {
var odiv=createDiv(0, cpos, clock_size+clock_size+2, 2, false);
cpos+=4;
var dot1=createDiv(4, 0, 3, 2, (id)?id+"top":false);
dot1.style.backgroundColor=colour;
odiv.appendChild(dot1);
var dot2=createDiv(clock_size+clock_size-5, 0, 3, 2, (id)?id+"bot":false);
dot2.style.backgroundColor=colour;
odiv.appendChild(dot2);
return (odiv);
}
function createDiv(top, left, height, width, id) {
var div=document.createElement("div");
div.style.position="absolute";
div.style.top=top+"px";
div.style.left=left+"px";
div.style.height=height+"px";
div.style.width=width+"px";
div.style.overflow="hidden";
if (id) div.setAttribute("id", id);
return (div);
}
</script>
</div>
</body>
</html>
在此版本中,不会有任何微小的火花。对于这一点,您不需要对这两个函数的运行时间进行任何区别。只需将 Sparkles 脚本放在前面,然后将 Clock 脚本放在后面即可。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>
<!-- sparkes script -->
<script>
var colour="random"; // "random" can be replaced with any valid colour ie: "red"...
var sparkles=100;// increase of decrease for number of sparkles falling
var x=ox=400;
var y=oy=300;
var swide=800;
var shigh=600;
var sleft=sdown=0;
var tiny=new Array();
var star=new Array();
var starv=new Array();
var starx=new Array();
var stary=new Array();
var tinyx=new Array();
var tinyy=new Array();
var tinyv=new Array();
colours=new Array('#ff0000','#00ff00','#ffffff','#ff00ff','#ffa500','#ffff00','#00ff00','#ffffff','ff00ff')
n = 10;
y = 0;
x = 0;
n6=(document.getElementById&&!document.all);
ns=(document.layers);
ie=(document.all);
d=(ns||ie)?'document.':'document.getElementById("';
a=(ns||n6)?'':'all.';
n6r=(n6)?'")':'';
s=(ns)?'':'.style';
if (ns){
for (i = 0; i < n; i++)
document.write('<layer name="dots'+i+'" top=0 left=0 width='+i/2+' height='+i/2+' bgcolor=#ff0000></layer>');
}
if (ie)
document.write('<div id="con" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
if (ie||n6){
for (i = 0; i < n; i++)
document.write('<div id="dots'+i+'" style="position:absolute;top:0px;left:0px;width:'+i/2+'px;height:'+i/2+'px;background:#ff0000;font-size:'+i/2+'"></div>');
}
if (ie)
document.write('</div></div>');
(ns||n6)?window.captureEvents(Event.MOUSEMOVE):0;
function Mouse(evnt){
y = (ns||n6)?evnt.pageY+4 - window.pageYOffset:event.y+4;
x = (ns||n6)?evnt.pageX+1:event.x+1;
}
(ns)?window.onMouseMove=Mouse:document.onmousemove=Mouse;
function animate(){
o=(ns||n6)?window.pageYOffset:0;
if (ie)con.style.top=document.body.scrollTop + 'px';
for (i = 0; i < n; i++){
var temp1 = eval(d+a+"dots"+i+n6r+s);
randcolours = colours[Math.floor(Math.random()*colours.length)];
(ns)?temp1.bgColor = randcolours:temp1.background = randcolours;
if (i < n-1){
var temp2 = eval(d+a+"dots"+(i+1)+n6r+s);
temp1.top = parseInt(temp2.top) + 'px';
temp1.left = parseInt(temp2.left) + 'px';
}
else{
temp1.top = y+o + 'px';
temp1.left = x + 'px';
}
}
setTimeout("animate()",10);
}
animate();
window.onload=function() { if (document.getElementById) {
var i, rats, rlef, rdow;
for (var i=0; i<sparkles; i++) {
var rats=createDiv(3, 3);
rats.style.visibility="hidden";
rats.style.zIndex="999";
document.body.appendChild(tiny[i]=rats);
starv[i]=0;
tinyv[i]=0;
var rats=createDiv(5, 5);
rats.style.backgroundColor="transparent";
rats.style.visibility="hidden";
rats.style.zIndex="999";
var rlef=createDiv(1, 5);
var rdow=createDiv(5, 1);
rats.appendChild(rlef);
rats.appendChild(rdow);
rlef.style.top="2px";
rlef.style.left="0px";
rdow.style.top="0px";
rdow.style.left="2px";
document.body.appendChild(star[i]=rats);
}
set_width();
sparkle();
}}
function sparkle() {
var c;
if (Math.abs(x-ox)>1 || Math.abs(y-oy)>1) {
ox=x;
oy=y;
for (c=0; c<sparkles; c++) if (!starv[c]) {
star[c].style.left=(starx[c]=x)+"px";
star[c].style.top=(stary[c]=y+1)+"px";
star[c].style.clip="rect(0px, 5px, 5px, 0px)";
star[c].childNodes[0].style.backgroundColor=star[c].childNodes[1].style.backgroundColor=(colour=="random")?newColour():colour;
star[c].style.visibility="visible";
starv[c]=50;
break;
}
}
for (c=0; c<sparkles; c++) {
if (starv[c]) update_star(c);
if (tinyv[c]) update_tiny(c);
}
setTimeout("sparkle()", 40);
}
function update_star(i) {
if (--starv[i]==25) star[i].style.clip="rect(1px, 4px, 4px, 1px)";
if (starv[i]) {
stary[i]+=1+Math.random()*3;
starx[i]+=(i%5-2)/5;
if (stary[i]<shigh+sdown) {
star[i].style.top=stary[i]+"px";
star[i].style.left=starx[i]+"px";
}
else {
star[i].style.visibility="hidden";
starv[i]=0;
return;
}
}
else {
tinyv[i]=50;
tiny[i].style.top=(tinyy[i]=stary[i])+"px";
tiny[i].style.left=(tinyx[i]=starx[i])+"px";
tiny[i].style.width="2px";
tiny[i].style.height="2px";
tiny[i].style.backgroundColor=star[i].childNodes[0].style.backgroundColor;
star[i].style.visibility="hidden";
tiny[i].style.visibility="visible"
}
}
function update_tiny(i) {
if (--tinyv[i]==25) {
tiny[i].style.width="1px";
tiny[i].style.height="1px";
}
if (tinyv[i]) {
tinyy[i]+=1+Math.random()*3;
tinyx[i]+=(i%5-2)/5;
if (tinyy[i]<shigh+sdown) {
tiny[i].style.top=tinyy[i]+"px";
tiny[i].style.left=tinyx[i]+"px";
}
else {
tiny[i].style.visibility="hidden";
tinyv[i]=0;
return;
}
}
else tiny[i].style.visibility="hidden";
}
document.onmousemove=mouse;
function mouse(e) {
if (e) {
y=e.pageY;
x=e.pageX;
}
else {
set_scroll();
y=event.y+sdown;
x=event.x+sleft;
}
}
window.onscroll=set_scroll;
function set_scroll() {
if (typeof(self.pageYOffset)=='number') {
sdown=self.pageYOffset;
sleft=self.pageXOffset;
}
else if (document.body && (document.body.scrollTop || document.body.scrollLeft)) {
sdown=document.body.scrollTop;
sleft=document.body.scrollLeft;
}
else if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)) {
sleft=document.documentElement.scrollLeft;
sdown=document.documentElement.scrollTop;
}
else {
sdown=0;
sleft=0;
}
}
window.onresize=set_width;
function set_width() {
var sw_min=999999;
var sh_min=999999;
if (document.documentElement && document.documentElement.clientWidth) {
if (document.documentElement.clientWidth>0) sw_min=document.documentElement.clientWidth;
if (document.documentElement.clientHeight>0) sh_min=document.documentElement.clientHeight;
}
if (typeof(self.innerWidth)=='number' && self.innerWidth) {
if (self.innerWidth>0 && self.innerWidth<sw_min) sw_min=self.innerWidth;
if (self.innerHeight>0 && self.innerHeight<sh_min) sh_min=self.innerHeight;
}
if (document.body.clientWidth) {
if (document.body.clientWidth>0 && document.body.clientWidth<sw_min) sw_min=document.body.clientWidth;
if (document.body.clientHeight>0 && document.body.clientHeight<sh_min) sh_min=document.body.clientHeight;
}
if (sw_min==999999 || sh_min==999999) {
sw_min=800;
sh_min=600;
}
swide=sw_min;
shigh=sh_min;
}
function createDiv(height, width) {
var div=document.createElement("div");
div.style.position="absolute";
div.style.height=height+"px";
div.style.width=width+"px";
div.style.overflow="hidden";
return (div);
}
function newColour() {
var c=new Array();
c[0]=255;
c[1]=Math.floor(Math.random()*256);
c[2]=Math.floor(Math.random()*(256-c[1]/2));
c.sort(function(){return (0.5 - Math.random());});
return ("rgb("+c[0]+", "+c[1]+", "+c[2]+")");
}
</script>
</div>
<!-- clock script -->
<div>
<script>
var colour="#000000";
var clock_size=8;
var clok;
var cpos=0;
var newx=xmo=100;
var newy=ymo=30;
window.onload=function() { if (document.getElementById) {
clok=document.createElement("div");
clok.style.position="absolute";
clok.appendChild(createDigit("dig0"));
clok.appendChild(createDigit("dig1"));
clok.appendChild(createColon());
clok.appendChild(createDigit("dig2"));
clok.appendChild(createDigit("dig3"));
clok.appendChild(createColon("ms"));
clok.appendChild(createDigit("dig4"));
clok.appendChild(createDigit("dig5"));
document.body.appendChild(clok);
tick();
}}
var digit=new Array(247, 146, 221, 219, 186, 235, 239, 210, 255, 251);
function tick() {
var now=new Date();
var t=Math.floor(now.getTime()/500)%2;
var i, j, k;
var won=oo(now.getHours())+oo(now.getMinutes())+oo(now.getSeconds());
for (i=0; i<6; i++) for (j=0; j<7; j++) {
k=digit[won.substring(i, i+1)].toString(2).substring(j+1, j+2);
document.getElementById("dig"+i+j).style.backgroundColor=(k==1)?colour:"transparent";
}
document.getElementById("mstop").style.backgroundColor=(t)?"transparent":colour;
document.getElementById("msbot").style.backgroundColor=(t)?"transparent":colour;
xmo+=Math.floor((newx-xmo)/4);
clok.style.left=Math.round(xmo-(clock_size+2)*4)+"px";
ymo+=Math.floor((newy-ymo)/4);
clok.style.top=Math.round(ymo-clock_size*2.5)+"px";
setTimeout("tick()", 40);
}
function scro() {
var scro=0;
if (document.body.scrollTop) scro=document.body.scrollTop;
else if (document.documentElement && document.documentElement.scrollTop) scro=document.documentElement.scrollTop;
return (scro);
}
function oo(o) { return(((o<10)?"0"+o:o).toString()); }
function createDigit(id) {
var odiv=createDiv(0, cpos, clock_size+clock_size+2, clock_size+2, false);
cpos+=clock_size+4;
odiv.appendChild(createDiv(0, 1, 2, clock_size, id+"0"));
odiv.appendChild(createDiv(1, 0, clock_size, 2, id+"1"));
odiv.appendChild(createDiv(1, clock_size, clock_size, 2, id+"2"));
odiv.appendChild(createDiv(clock_size, 1, 2, clock_size, id+"3"));
odiv.appendChild(createDiv(clock_size+1, 0, clock_size, 2, id+"4"));
odiv.appendChild(createDiv(clock_size+1, clock_size, clock_size, 2, id+"5"));
odiv.appendChild(createDiv(clock_size+clock_size, 1, 2, clock_size, id+"6"));
return (odiv);
}
function createColon(id) {
var odiv=createDiv(0, cpos, clock_size+clock_size+2, 2, false);
cpos+=4;
var dot1=createDiv(4, 0, 3, 2, (id)?id+"top":false);
dot1.style.backgroundColor=colour;
odiv.appendChild(dot1);
var dot2=createDiv(clock_size+clock_size-5, 0, 3, 2, (id)?id+"bot":false);
dot2.style.backgroundColor=colour;
odiv.appendChild(dot2);
return (odiv);
}
function createDiv(top, left, height, width, id) {
var div=document.createElement("div");
div.style.position="absolute";
div.style.top=top+"px";
div.style.left=left+"px";
div.style.height=height+"px";
div.style.width=width+"px";
div.style.overflow="hidden";
if (id) div.setAttribute("id", id);
return (div);
}
</script>
</div>
</body>
</html>