Discuz教程网

js实现的跟随鼠标移动的时钟效果(中英文日期显示)

[复制链接]
authicon 09927306 发表于 2011-1-18 14:07:56 | 显示全部楼层 |阅读模式
js实现的跟随鼠标移动的时钟效果,网上的很多代码都是错误,这里特别为大家整理个能用的。
中文日期限制
  1. <script language="JavaScript">
  2. <!--
  3. dCol=\'red\'; //定义日历颜色
  4. fCol=\'#ff0000\'; //定义1-12这12个数的颜色
  5. sCol=\'#00ff00\'; //定义秒针颜色
  6. mCol=\'#0000ff\'; //定义分针颜色
  7. hCol=\'#ff0000\'; //定义时针颜色
  8. ClockHeight=40; //定义时钟的高度
  9. ClockWidth=40; //定义时钟的宽度
  10. ClockFromMouseY=0; //定义时钟的中心距鼠标的相对垂直距离
  11. ClockFromMouseX=100; //定义时钟中心距鼠标的相对水平距离
  12. //以上颜色值你要据你页面的背景颜色进行修改!注意不要你页面的背景色一致哦。
  13. d=new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
  14. m=new Array("一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"); //以上是给定星期和月份的取值范围
  15. date=new Date();
  16. day=date.getDate(); //取得当前日期命令
  17. year=date.getYear(); //取得当前年份命令
  18. if (year < 2000) year=year+1900;
  19. TodaysDate="年 "+m[date.getMonth()]+" "+day+"日 "+d[date.getDay()]+" "+year;
  20. D=TodaysDate.split(\'\'); //显示"某年某月某日"
  21. H=\'...\';
  22. H=H.split(\'\');
  23. M=\'....\';
  24. M=M.split(\'\');
  25. S=\'.....\';
  26. S=S.split(\'\'); //使秒、分、时针反向相应的位置
  27. Face=\'1 2 3 4 5 6 7 8 9 10 11 12\';
  28. font=\'Arial\';
  29. size=1; //定义秒、分、时针及1-12等字符的宋体、大小(最好匆改动哦)
  30. speed=0.8; //定义一旦鼠标位置发生变化时所有相关字符跟随至前面指定的鼠标的相对位置的速度,能看到各字符的轨迹,值可在0.1-1.0之间改动(值最小为0.1时跟随过来的速度最慢,值为1.0时跟随速度最快且与轨迹显示)
  31. ns=(document.layers);
  32. ie=(document.all); //说明在NS和IE两种不同浏览器里都适用

  33. //以下的大段语句定义了NS和IE浏览器各自如何控制并完成时间和旋转的日历跟随鼠标转的
  34. Face=Face.split(\' \');
  35. n=Face.length;
  36. a=size*10;
  37. ymouse=0;
  38. xmouse=0;
  39. scrll=0;
  40. props="<font face="+font+" size="+size+" color="+fCol+">";
  41. props2="<font face="+font+" size="+size+" color="+dCol+">";
  42. Split=360/n;
  43. Dsplit=360/D.length;
  44. HandHeight=ClockHeight/4.5
  45. HandWidth=ClockWidth/4.5
  46. HandY=-7;
  47. HandX=-2.5;
  48. scrll=0;
  49. step=0.06;
  50. currStep=0;
  51. y=new Array();x=new Array();Y=new Array();X=new Array();
  52. for (i=0; i < n; i++){y[i]=0;x[i]=0;Y[i]=0;X[i]=0}
  53. Dy=new Array();Dx=new Array();DY=new Array();DX=new Array();
  54. for (i=0; i < D.length; i++){Dy[i]=0;Dx[i]=0;DY[i]=0;DX[i]=0}

  55. if (ns){
  56. for (i=0; i < D.length; i++)
  57. document.write(\'<layer name="nsDate\'+i+\'" top=0 left=0 height=\'+a+\' width=\'+a+\'><center>\'+props2+D[i]+\'</font></center></layer>\');
  58. for (i=0; i < n; i++)
  59. document.write(\'<layer name="nsFace\'+i+\'" top=0 left=0 height=\'+a+\' width=\'+a+\'><center>\'+props+Face[i]+\'</font></center></layer>\');
  60. for (i=0; i < S.length; i++)
  61. 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>\');
  62. for (i=0; i < M.length; i++)
  63. 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>\');
  64. for (i=0; i < H.length; i++)
  65. 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>\');
  66. }

  67. if (ie){
  68. document.write(\'<div id="Od" style="position:absolute;top:0px;left:0px"><div style="position:relative">\');
  69. for (i=0; i < D.length; i++)
  70. document.write(\'<div id="ieDate" style="position:absolute;top:0px;left:0;height:\'+a+\';width:\'+a+\';text-align:center">\'+props2+D[i]+\'</font></div>\');
  71. document.write(\'</div></div>\');
  72. document.write(\'<div id="Of" style="position:absolute;top:0px;left:0px"><div style="position:relative">\');
  73. for (i=0; i < n; i++)
  74. document.write(\'<div id="ieFace" style="position:absolute;top:0px;left:0;height:\'+a+\';width:\'+a+\';text-align:center">\'+props+Face[i]+\'</font></div>\');
  75. document.write(\'</div></div>\');
  76. document.write(\'<div id="Oh" style="position:absolute;top:0px;left:0px"><div style="position:relative">\');
  77. for (i=0; i < H.length; i++)
  78. 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>\');
  79. document.write(\'</div></div>\');
  80. document.write(\'<div id="Om" style="position:absolute;top:0px;left:0px"><div style="position:relative">\');
  81. for (i=0; i < M.length; i++)
  82. 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>\');
  83. document.write(\'</div></div>\')
  84. document.write(\'<div id="Os" style="position:absolute;top:0px;left:0px"><div style="position:relative">\');
  85. for (i=0; i < S.length; i++)
  86. 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>\');
  87. document.write(\'</div></div>\')
  88. }

  89. (ns)?window.captureEvents(Event.MOUSEMOVE):0;
  90. function Mouse(evnt){
  91. ymouse = (ns)?evnt.pageY+ClockFromMouseY-(window.pageYOffset):
  92. event.y+ClockFromMouseY;
  93. xmouse = (ns)?evnt.pageX+ClockFromMouseX:event.x+ClockFromMouseX;
  94. }
  95. (ns)?window.onMouseMove=Mouse:document.onmousemove=Mouse;

  96. function ClockAndAssign(){
  97. time = new Date ();
  98. secs = time.getSeconds();
  99. sec = -1.57 + Math.PI * secs/30;
  100. mins = time.getMinutes();
  101. min = -1.57 + Math.PI * mins/30;
  102. hr = time.getHours();
  103. hrs = -1.575 + Math.PI * hr/6+Math.PI*parseInt(time.getMinutes())/360;
  104. if (ie){
  105. Od.style.top=window.document.body.scrollTop;
  106. Of.style.top=window.document.body.scrollTop;
  107. Oh.style.top=window.document.body.scrollTop;
  108. Om.style.top=window.document.body.scrollTop;
  109. Os.style.top=window.document.body.scrollTop;
  110. }
  111. for (i=0; i < n; i++){
  112. var F=(ns)?document.layers[\'nsFace\'+i]:ieFace[i].style;
  113. F.top=y[i] + ClockHeight*Math.sin(-1.0471 + i*Split*Math.PI/180)+scrll;
  114. F.left=x[i] + ClockWidth*Math.cos(-1.0471 + i*Split*Math.PI/180);
  115. }
  116. for (i=0; i < H.length; i++){
  117. var HL=(ns)?document.layers[\'nsHours\'+i]:ieHours[i].style;
  118. HL.top=y[i]+HandY+(i*HandHeight)*Math.sin(hrs)+scrll;
  119. HL.left=x[i]+HandX+(i*HandWidth)*Math.cos(hrs);
  120. }
  121. for (i=0; i < M.length; i++){
  122. var ML=(ns)?document.layers[\'nsMinutes\'+i]:ieMinutes[i].style;
  123. ML.top=y[i]+HandY+(i*HandHeight)*Math.sin(min)+scrll;
  124. ML.left=x[i]+HandX+(i*HandWidth)*Math.cos(min);
  125. }
  126. for (i=0; i < S.length; i++){
  127. var SL=(ns)?document.layers[\'nsSeconds\'+i]:ieSeconds[i].style;
  128. SL.top=y[i]+HandY+(i*HandHeight)*Math.sin(sec)+scrll;
  129. SL.left=x[i]+HandX+(i*HandWidth)*Math.cos(sec);
  130. }
  131. for (i=0; i < D.length; i++){
  132. var DL=(ns)?document.layers[\'nsDate\'+i]:ieDate[i].style;
  133. DL.top=Dy[i] + ClockHeight*1.5*Math.sin(currStep+i*Dsplit*Math.PI/180)+scrll;
  134. DL.left=Dx[i] + ClockWidth*1.5*Math.cos(currStep+i*Dsplit*Math.PI/180);
  135. }
  136. currStep-=step;
  137. }
  138. function Delay(){
  139. scrll=(ns)?window.pageYOffset:0;
  140. Dy[0]=Math.round(DY[0]+=((ymouse)-DY[0])*speed);
  141. Dx[0]=Math.round(DX[0]+=((xmouse)-DX[0])*speed);
  142. for (i=1; i < D.length; i++){
  143. Dy[i]=Math.round(DY[i]+=(Dy[i-1]-DY[i])*speed);
  144. Dx[i]=Math.round(DX[i]+=(Dx[i-1]-DX[i])*speed);
  145. }
  146. y[0]=Math.round(Y[0]+=((ymouse)-Y[0])*speed);
  147. x[0]=Math.round(X[0]+=((xmouse)-X[0])*speed);
  148. for (i=1; i < n; i++){
  149. y[i]=Math.round(Y[i]+=(y[i-1]-Y[i])*speed);
  150. x[i]=Math.round(X[i]+=(x[i-1]-X[i])*speed);
  151. }
  152. ClockAndAssign();
  153. setTimeout(\'Delay()\',20);
  154. }
  155. if (ns||ie)window.onload=Delay;
  156. //-->
  157. </script>
复制代码

英文日期显示:
  1. <SCRIPT language=JavaScript>dCol=\'000099\';//date colour.
  2. fCol=\'668099\';//face colour.
  3. sCol=\'FF0000\';//seconds colour.
  4. mCol=\'000000\';//minutes colour.
  5. hCol=\'000000\';//hours colour.
  6. ClockHeight=40;
  7. ClockWidth=40;
  8. ClockFromMouseY=0;
  9. ClockFromMouseX=100;
  10. //Alter nothing below! Alignments will be lost!
  11. d=new Array("SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY");
  12. m=new Array("JANUARY","FEBRUARY","MARCH","APRIL","MAY","JUNE","JULY","AUGUST","SEPTEMBER","OCTOBER","NOVEMBER","DECEMBER");
  13. date=new Date();
  14. day=date.getDate();
  15. year=date.getYear();
  16. if (year < 2000) year=year+1900;
  17. TodaysDate=" "+d[date.getDay()]+" "+day+" "+m[date.getMonth()]+" "+year;
  18. D=TodaysDate.split(\'\');
  19. H=\'...\';
  20. H=H.split(\'\');
  21. M=\'....\';
  22. M=M.split(\'\');
  23. S=\'.....\';
  24. S=S.split(\'\');
  25. Face=\'1 2 3 4 5 6 7 8 9 10 11 12\';
  26. //font=\'Arial\';
  27. font=\'Verdana\';
  28. size=1;
  29. speed=0.6;
  30. ns=(document.layers);
  31. ie=(document.all);
  32. Face=Face.split(\' \');
  33. n=Face.length;
  34. a=size*10;
  35. ymouse=0;
  36. xmouse=0;
  37. scrll=0;
  38. props="<font face="+font+" size="+size+" color="+fCol+"><B>";
  39. props2="<font face="+font+" size="+size+" color="+dCol+"><B>";
  40. Split=360/n;
  41. Dsplit=360/D.length;
  42. HandHeight=ClockHeight/4.5
  43. HandWidth=ClockWidth/4.5
  44. HandY=-7;
  45. HandX=-2.5;
  46. scrll=0;
  47. step=0.06;
  48. currStep=0;
  49. y=new Array();x=new Array();Y=new Array();X=new Array();
  50. for (i=0; i < n; i++){y[i]=0;x[i]=0;Y[i]=0;X[i]=0}
  51. Dy=new Array();Dx=new Array();DY=new Array();DX=new Array();
  52. for (i=0; i < D.length; i++){Dy[i]=0;Dx[i]=0;DY[i]=0;DX[i]=0}
  53. if (ns){
  54. for (i=0; i < D.length; i++)
  55. document.write(\'<layer name="nsDate\'+i+\'" top=0 left=0 height=\'+a+\' width=\'+a+\'><center>\'+props2+D[i]+\'</font></center></layer>\');
  56. for (i=0; i < n; i++)
  57. document.write(\'<layer name="nsFace\'+i+\'" top=0 left=0 height=\'+a+\' width=\'+a+\'><center>\'+props+Face[i]+\'</font></center></layer>\');
  58. for (i=0; i < S.length; i++)
  59. 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>\');
  60. for (i=0; i < M.length; i++)
  61. 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>\');
  62. for (i=0; i < H.length; i++)
  63. 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>\');
  64. }
  65. if (ie){
  66. document.write(\'<div id="Od" style="position:absolute;top:0px;left:0px"><div style="position:relative">\');
  67. for (i=0; i < D.length; i++)
  68. document.write(\'<div id="ieDate" style="position:absolute;top:0px;left:0;height:\'+a+\';width:\'+a+\';text-align:center">\'+props2+D[i]+\'</B></font></div>\');
  69. document.write(\'</div></div>\');
  70. document.write(\'<div id="Of" style="position:absolute;top:0px;left:0px"><div style="position:relative">\');
  71. for (i=0; i < n; i++)
  72. document.write(\'<div id="ieFace" style="position:absolute;top:0px;left:0;height:\'+a+\';width:\'+a+\';text-align:center">\'+props+Face[i]+\'</B></font></div>\');
  73. document.write(\'</div></div>\');
  74. document.write(\'<div id="Oh" style="position:absolute;top:0px;left:0px"><div style="position:relative">\');
  75. for (i=0; i < H.length; i++)
  76. 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>\');
  77. document.write(\'</div></div>\');
  78. document.write(\'<div id="Om" style="position:absolute;top:0px;left:0px"><div style="position:relative">\');
  79. for (i=0; i < M.length; i++)
  80. 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>\');
  81. document.write(\'</div></div>\')
  82. document.write(\'<div id="Os" style="position:absolute;top:0px;left:0px"><div style="position:relative">\');
  83. for (i=0; i < S.length; i++)
  84. 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>\');
  85. document.write(\'</div></div>\')
  86. }
  87. (ns)?window.captureEvents(Event.MOUSEMOVE):0;
  88. function Mouse(evnt){
  89. ymouse = (ns)?evnt.pageY+ClockFromMouseY-(window.pageYOffset):event.y+ClockFromMouseY;
  90. xmouse = (ns)?evnt.pageX+ClockFromMouseX:event.x+ClockFromMouseX;
  91. }
  92. (ns)?window.onMouseMove=Mouse:document.onmousemove=Mouse;
  93. function ClockAndAssign(){
  94. time = new Date ();
  95. secs = time.getSeconds();
  96. sec = -1.57 + Math.PI * secs/30;
  97. mins = time.getMinutes();
  98. min = -1.57 + Math.PI * mins/30;
  99. hr = time.getHours();
  100. hrs = -1.575 + Math.PI * hr/6+Math.PI*parseInt(time.getMinutes())/360;
  101. if (ie){
  102. Od.style.top=window.document.body.scrollTop;
  103. Of.style.top=window.document.body.scrollTop;
  104. Oh.style.top=window.document.body.scrollTop;
  105. Om.style.top=window.document.body.scrollTop;
  106. Os.style.top=window.document.body.scrollTop;
  107. }
  108. for (i=0; i < n; i++){
  109. var F=(ns)?document.layers[\'nsFace\'+i]:ieFace[i].style;
  110. F.top=y[i] + ClockHeight*Math.sin(-1.0471 + i*Split*Math.PI/180)+scrll;
  111. F.left=x[i] + ClockWidth*Math.cos(-1.0471 + i*Split*Math.PI/180);
  112. }
  113. for (i=0; i < H.length; i++){
  114. var HL=(ns)?document.layers[\'nsHours\'+i]:ieHours[i].style;
  115. HL.top=y[i]+HandY+(i*HandHeight)*Math.sin(hrs)+scrll;
  116. HL.left=x[i]+HandX+(i*HandWidth)*Math.cos(hrs);
  117. }
  118. for (i=0; i < M.length; i++){
  119. var ML=(ns)?document.layers[\'nsMinutes\'+i]:ieMinutes[i].style;
  120. ML.top=y[i]+HandY+(i*HandHeight)*Math.sin(min)+scrll;
  121. ML.left=x[i]+HandX+(i*HandWidth)*Math.cos(min);
  122. }
  123. for (i=0; i < S.length; i++){
  124. var SL=(ns)?document.layers[\'nsSeconds\'+i]:ieSeconds[i].style;
  125. SL.top=y[i]+HandY+(i*HandHeight)*Math.sin(sec)+scrll;
  126. SL.left=x[i]+HandX+(i*HandWidth)*Math.cos(sec);
  127. }
  128. for (i=0; i < D.length; i++){
  129. var DL=(ns)?document.layers[\'nsDate\'+i]:ieDate[i].style;
  130. DL.top=Dy[i] + ClockHeight*1.5*Math.sin(currStep+i*Dsplit*Math.PI/180)+scrll;
  131. DL.left=Dx[i] + ClockWidth*1.5*Math.cos(currStep+i*Dsplit*Math.PI/180);
  132. }
  133. currStep-=step;
  134. }
  135. function Delay(){
  136. scrll=(ns)?window.pageYOffset:0;
  137. Dy[0]=Math.round(DY[0]+=((ymouse)-DY[0])*speed);
  138. Dx[0]=Math.round(DX[0]+=((xmouse)-DX[0])*speed);
  139. for (i=1; i < D.length; i++){
  140. Dy[i]=Math.round(DY[i]+=(Dy[i-1]-DY[i])*speed);
  141. Dx[i]=Math.round(DX[i]+=(Dx[i-1]-DX[i])*speed);
  142. }
  143. y[0]=Math.round(Y[0]+=((ymouse)-Y[0])*speed);
  144. x[0]=Math.round(X[0]+=((xmouse)-X[0])*speed);
  145. for (i=1; i < n; i++){
  146. y[i]=Math.round(Y[i]+=(y[i-1]-Y[i])*speed);
  147. x[i]=Math.round(X[i]+=(x[i-1]-X[i])*speed);
  148. }
  149. ClockAndAssign();
  150. setTimeout(\'Delay()\',10);
  151. }
  152. if (ns||ie)window.onload=Delay;
  153. </SCRIPT>
复制代码






上一篇:关于COOKIE个数与大小的问题
下一篇:Jquery 插件开发笔记整理
authicon 飞闪 发表于 2011-1-19 09:13:15 | 显示全部楼层
楼主太厉害了!楼主,I*老*虎*U!我觉得1314学习网真是个好地方!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 16:26

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表