84、跟随鼠标时钟

84、跟随鼠标时钟

脚本说明:

把如下代码加入<body>区域中

<script language="JavaScript">

<!--

fcol='aecae5';//face colour.

sCol='ff0000';//seconds colour.

mCol='aecae5';//minutes colour.

hCol='aecae5';//hours colour.

ClockHeight=40;

ClockWidth=40;

ClockFromMouseY=80;

ClockFromMouseX=0;

 

//Alter nothing below! Alignments will be lost!

 

H='...';

H=H.split('');

M='....';

M=M.split('');

S='.....';

S=S.split('');

msg='1 2 3 4 5 6 7 8 9 10 11 12';

font='Arial';

size=1;

speed=0.5;

ns=(document.layers);

ie=(document.all);

msg=msg.split(' ');

n=msg.length;

a=size*10;

ymouse=0;

xmouse=0;

scrll=0;

props="<font face="+font+" size="+size+" color="+fcol+">";

Split=360/n;

HandHeight=ClockHeight/4.5

HandWidth=ClockWidth/4.5

HandY=-7;

HandX=-2.5;

scrll=0;

y=new Array();

x=new Array();

Y=new Array();

X=new Array();

for (i=0; i < n; i++){

y[i]=0;

x[i]=0;

Y[i]=0;

X[i]=0;

}

if (ns){

for (i=0; i < n; i++)

document.write('<layer name="nsFace'+i+'" top=0 left=0 height='+a+' width='+a+'><center>'+props+msg[i]+'</font></center></layer>');

for (i=0; i < S.length; i++)

document.write('<layer name=nsSeconds'+i+' top=0 left=0 width=15 height=15><font face=Arial size=3 color='+sCol+'><center><b>'+S[i]+'</b></center></font></layer>');

for (i=0; i < M.length; i++)

document.write('<layer name=nsMinutes'+i+' top=0 left=0 width=15 height=15><font face=Arial size=3 color='+mCol+'><center><b>'+M[i]+'</b></center></font></layer>');

for (i=0; i < H.length; i++)

document.write('<layer name=nsHours'+i+' top=0 left=0 width=15 height=15><font face=Arial size=3 color='+hCol+'><center><b>'+H[i]+'</b></center></font></layer>');

}

if (ie){

document.write('<div id="Of" style="position:absolute;top:0px;left:0px"><div style="position:relative">');

for (i=0; i < n; i++)

document.write('<div id="ieFace" style="position:absolute;top:0px;left:0;height:'+a+';width:'+a+';text-align:center">'+props+msg[i]+'</font></div>');

document.write('</div></div>');

 

document.write('<div id="Oh" style="position:absolute;top:0px;left:0px"><div style="position:relative">');

for (i=0; i < H.length; i++){

document.write('<div id="ieHours" style="position:absolute;width:16px;height:16px;font-family:Arial;font-size:16px;color:'+hCol+';text-align:center;font-weight:bold">'+H[i]+'</div>');

}

document.write('</div></div>');

document.write('<div id="Om" style="position:absolute;top:0px;left:0px"><div style="position:relative">');

for (i=0; i < M.length; i++){

document.write('<div id="ieMinutes" style="position:absolute;width:16px;height:16px;font-family:Arial;font-size:16px;color:'+mCol+';text-align:center;font-weight:bold">'+M[i]+'</div>');

}

document.write('</div></div>')

document.write('<div id="Os" style="position:absolute;top:0px;left:0px"><div style="position:relative">');

for (i=0; i < S.length; i++){

document.write('<div id="ieSeconds" style="position:absolute;width:16px;height:16px;font-family:Arial;font-size:16px;color:'+sCol+';text-align:center;font-weight:bold">'+S[i]+'</div>');

}

document.write('</div></div>')

}

(ns)?window.captureEvents(Event.MOUSEMOVE):0;

function Mouse(evnt){

ymouse = (ns)?evnt.pageY+ClockFromMouseY-(window.pageYOffset):event.y+ClockFromMouseY;

xmouse = (ns)?evnt.pageX+ClockFromMouseX:event.x+ClockFromMouseX;

}

(ns)?window.onMouseMove=Mouse:document.onmousemove=Mouse;

function ClockAndAssign(){

time = new Date ();

secs = time.getSeconds();

sec = -1.57 + Math.PI * secs/30;

mins = time.getMinutes();

min = -1.57 + Math.PI * mins/30;

hr = time.getHours();

hrs = -1.575 + Math.PI * hr/6+ Math.PI*parseInt(time.getMinutes())/360;

if (ie){

Of.style.top=window.document.body.scrollTop;

Oh.style.top=window.document.body.scrollTop;

Om.style.top=window.document.body.scrollTop;

Os.style.top=window.document.body.scrollTop;

}

for (i=0; i < n; i++){

 var F=(ns)?document.layers['nsFace'+i]:ieFace[i].style;

 F.top=y[i] + ClockHeight*Math.sin(-1.0471 + i*Split*Math.PI/180)+scrll;

 F.left=x[i] + ClockWidth*Math.cos(-1.0471 + i*Split*Math.PI/180);

 }

for (i=0; i < H.length; i++){

 var HL=(ns)?document.layers['nsHours'+i]:ieHours[i].style;

 HL.top=y[i]+HandY+(i*HandHeight)*Math.sin(hrs)+scrll;

 HL.left=x[i]+HandX+(i*HandWidth)*Math.cos(hrs);

 }

for (i=0; i < M.length; i++){

 var ML=(ns)?document.layers['nsMinutes'+i]:ieMinutes[i].style;

 ML.top=y[i]+HandY+(i*HandHeight)*Math.sin(min)+scrll;

 ML.left=x[i]+HandX+(i*HandWidth)*Math.cos(min);

 }

for (i=0; i < S.length; i++){

 var SL=(ns)?document.layers['nsSeconds'+i]:ieSeconds[i].style;

 SL.top=y[i]+HandY+(i*HandHeight)*Math.sin(sec)+scrll;

 SL.left=x[i]+HandX+(i*HandWidth)*Math.cos(sec);

 }

}

function Delay(){

scrll=(ns)?window.pageYOffset:0;

y[0]=Math.round(Y[0]+=((ymouse)-Y[0])*speed);

x[0]=Math.round(X[0]+=((xmouse)-X[0])*speed);

for (var i=1; i < n; i++){

y[i]=Math.round(Y[i]+=(y[i-1]-Y[i])*speed);

x[i]=Math.round(X[i]+=(x[i-1]-X[i])*speed);

}

ClockAndAssign();

setTimeout('Delay()',20);

}

if (ns||ie)window.onload=Delay;

//-->

</script>

Write a comment

Comments: 0