当前位置:Gxlcms > html代码 > 使用HTML5和CSS3制作简单的钟表

使用HTML5和CSS3制作简单的钟表

时间:2021-07-01 10:21:17 帮助过:12人阅读

利用html5,css实现钟摆效果 ,在项目中经常会遇到,今天小编把基于HTML5+CSS3实现简单的时钟效果的实现代码分享到脚本之家平台,需要的额朋友参考下吧

目的:

利用html5,css实现钟摆效果

知识点:

1) 利用position/left/top和calc()实现元素的水平和垂直居中;

2) 利用CSS3的animation/transform/transform-origin属性定义动画;

3) 利用transform-origin实现旋转原点的圆心调整

废话不多说了,直接看代码吧,具体代码如下所示:


  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <style>
  7. li{
  8. list-style:none;
  9. }
  10. #box{
  11. width: 400px;
  12. height: 400px;
  13. position: absolute;
  14. top:calc(50% - 200px);
  15. left:calc(50% - 200px);
  16. border: 2px solid palegoldenrod;
  17. }
  18. #dial{
  19. width: 200px;
  20. height: 200px;
  21. position: absolute;
  22. top:calc(50% - 100px);
  23. left:calc(50% - 100px);
  24. border: 2px solid cyan;
  25. border-radius: 50%;
  26. }
  27. .scaleIndex{
  28. width: 4px;
  29. height: 12px;
  30. position: absolute;
  31. top: 0;
  32. left: calc(50% - 2px);
  33. background-color: gray;
  34. transform-origin: 2px 100px;
  35. }
  36. .angle30{transform : rotate(30deg);}
  37. .angle60{transform : rotate(60deg);}
  38. .angle90{transform : rotate(90deg);}
  39. .angle120{transform : rotate(120deg);}
  40. .angle150{transform : rotate(150deg);}
  41. .angle180{transform : rotate(180deg);}
  42. .angle210{transform : rotate(210deg);}
  43. .angle240{transform : rotate(240deg);}
  44. .angle270{transform : rotate(270deg);}
  45. .angle300{transform : rotate(300deg);}
  46. .angle330{transform : rotate(330deg);}
  47. #fixPoint{
  48. width: 10px;
  49. height: 10px;
  50. position: absolute;
  51. top:calc(50% - 5px);
  52. left:calc(50% - 5px);
  53. background-color: cadetblue;
  54. border-radius: 50%;
  55. }
  56. #hourHand{
  57. width: 6px;
  58. height: 70px;
  59. position:absolute;
  60. top: 40px;
  61. left: calc(50% - 3px);
  62. background-color: darkblue;
  63. transform-origin: 50% 60px;
  64. }
  65. #minuteHand{
  66. width: 4px;
  67. height: 75px;
  68. position:absolute;
  69. top: 35px;
  70. left: calc(50% - 2px);
  71. background-color: yellow;
  72. transform-origin: 50% 65px;
  73. }
  74. #secondHand{
  75. width: 2px;
  76. height: 90px;
  77. position:absolute;
  78. top: 20px;
  79. left: calc(50% - 1px);
  80. background-color: red;
  81. transform-origin: 50% 80px;
  82. }
  83. </style>
  84. </head>
  85. <body>
  86. <p id = "box">
  87. <p id = 'dial'>
  88. <ul id = "scale">
  89. <li class = "scaleIndex"></li>
  90. <li class = "scaleIndex angle30"></li>
  91. <li class = "scaleIndex angle60"></li>
  92. <li class = "scaleIndex angle90"></li>
  93. <li class = "scaleIndex angle120"></li>
  94. <li class = "scaleIndex angle150"></li>
  95. <li class = "scaleIndex angle180"></li>
  96. <li class = "scaleIndex angle210"></li>
  97. <li class = "scaleIndex angle240"></li>
  98. <li class = "scaleIndex angle270"></li>
  99. <li class = "scaleIndex angle300"></li>
  100. <li class = "scaleIndex angle330"></li>
  101. </ul>
  102. <p id = "fixPoint"></p>
  103. <p id = "hourHand"></p>
  104. <p id = "minuteHand"></p>
  105. <p id = "secondHand"></p>
  106. </p>
  107. </p>
  108. <script type = 'text/javascript' src = 'js/jquery-3.2.1.js'></script>
  109. <script type = "text/javascript">
  110. window.onload = function(){
  111. var hourHand = document.getElementById('hourHand');
  112. var minuteHand = document.getElementById('minuteHand');
  113. var secondHand = document.getElementById('secondHand');
  114. setInterval(function(){
  115. var currentTime = new Date();
  116. var hourValue = currentTime.getHours();
  117. var hourAngle = hourValue / 24 * 360 + 'deg';
  118. var minuteValue = currentTime.getMinutes();
  119. var minuteAngle = minuteValue / 60 * 360 + 'deg';
  120. var secondValue = currentTime.getSeconds();
  121. var secondAngle = secondValue / 60 * 360 + 'deg';
  122. console.log(hourAngle);
  123. // 方法一:利用jquery的css()增加属性
  124. var cmdHour = 'rotate('+ hourAngle +')';
  125. $('#hourHand').css({transform:'rotate('+ hourAngle +')'});
  126. var cmdMinute = 'rotate('+ minuteAngle +')';
  127. $('#minuteHand').css({transform:cmdMinute});
  128. var cmdSecond = 'rotate('+ secondAngle +')';
  129. $('#secondHand').css({transform:cmdSecond});
  130. // 方法二:利用DOM元素的style属性设置
  131. // hourHand.style.transform = 'rotate('+ hourAngle + ')';
  132. // minuteHand.style.transform = 'rotate('+ minuteAngle + ')';
  133. // secondHand.style.transform = 'rotate('+ secondAngle + ')';
  134. },1000);
  135. }
  136. </script>
  137. </body>
  138. </html>

以上就是使用HTML5和CSS3制作简单的钟表的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行