clock.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. window.onload = function() {
  2. var winHeight = document.documentElement.clientHeight;
  3. document.getElementsByTagName('body')[0].style.height = winHeight+'px';
  4. var $clock = document.getElementById('clock'),
  5. $hour = document.getElementById('hour'),
  6. $min = document.getElementById('min'),
  7. $sec = document.getElementById('sec'),
  8. oSecs = document.createElement('em');
  9. for (var i = 1; i < 61; i++) {
  10. var tempSecs = oSecs.cloneNode(),
  11. pos = getSecPos(i);
  12. if(i%5==0){
  13. tempSecs.className = 'ishour';
  14. // tempSecs.innerHTML = '<i style="-webkit-transform:rotate('+(-i*6)+'deg);">'+(i/5)+'</i>';
  15. }
  16. // tempSecs.style.cssText='left:'+pos.x+'px; top:'+pos.y+'px; -webkit-transform:rotate('+i*6+'deg);';
  17. $clock.appendChild(tempSecs);
  18. }
  19. // 圆弧上的坐标换算
  20. function getSecPos(dep) {
  21. var hudu = (2*Math.PI/360)*6*dep,
  22. r = document.documentElement.clientWidth / 54; //半径大小
  23. return {
  24. x: Math.floor(r + Math.sin(hudu)*r),
  25. y: Math.floor(r - Math.cos(hudu)*r),
  26. }
  27. }
  28. ;(function() {
  29. // 当前时间
  30. var _now = new Date(),
  31. _h = _now.getHours(),
  32. _m = _now.getMinutes(),
  33. _s = _now.getSeconds();
  34. var _day = _now.getDay();
  35. _day = (_day==0)?7:_day;
  36. if(_day==1){
  37. _day = "一";
  38. }else if(_day==2){
  39. _day = "二";
  40. }else if(_day==3){
  41. _day = "三";
  42. }else if(_day==4){
  43. _day = "四";
  44. }else if(_day==5){
  45. _day = "五";
  46. }else if(_day==6){
  47. _day = "六";
  48. }else if(_day==7){
  49. _day = "日";
  50. }
  51. //绘制时钟
  52. var gotime = function(){
  53. var _h_dep = 0;
  54. _s++;
  55. if(_s>59){
  56. _s=0;
  57. _m++;
  58. }
  59. if(_m>59){
  60. _m=0;
  61. _h++;
  62. }
  63. if(_h>12){
  64. _h = _h-12;
  65. }
  66. //时针偏移距离
  67. _h_dep = Math.floor(_m/12)*6;
  68. $hour.style.cssText = '-webkit-transform:rotate('+(_h*30-90+_h_dep)+'deg);';
  69. $min.style.cssText = '-webkit-transform:rotate('+(_m*6-90)+'deg);';
  70. $sec.style.cssText = '-webkit-transform:rotate('+(_s*6-90)+'deg);';
  71. };
  72. gotime();
  73. setInterval(gotime, 1000);
  74. })();
  75. };