首頁 > web前端 > js教程 > 主體

如何使用 HTML、CSS 和 JavaScript 建立模擬時鐘?

PHPz
發布: 2023-08-29 11:01:02
轉載
968 人瀏覽過

如何使用 HTML、CSS 和 JavaScript 创建模拟时钟?

在本教學中,我們將藉助HTMLCSS 設計一個模擬時鐘,並使用JavaScript 使其工作,這將以小時、分鐘和秒的格式顯示當前時間。

Approach
  • 我們將使用Date 對象,並透過一些計算,我們將顯示小時分鐘

  • 我們將從JavaScript物件Date()取得系統時間,該物件具有諸如的函數>getHours() getSecond()getMinutes()

  • 取得後我們將應用小時分鐘格式來轉換所有三針時、分和秒的旋轉。

模擬時鐘透過連續移動的三隻指標來顯示時間,並在顯示時間時標記從 1 到 12。

HTML

建立HTML 檔案命名為index.html並新增一些樣板程式碼,這是基本的html語法,如下所示,在我們的HTML程式碼內有一個div,名稱為“sizeOfAnalog”,在這三個div內有相同的類別名稱“sizeOfAnalog”,名稱為hour_clock,分鐘_時鐘,秒_時鐘。

CSS

我們將在 HTML 程式碼中加入內部 CSS 以及內部 JavaScript。使用標籤可以套用內部CSS,使用<script></script>可以套用內部JavaScript。

JavaScript

在JavaScript部分,我們做主要的邏輯工作。我們將使用 JavaScript Date() 物件及其函數 getHours()、getSecond() 和 getMinutes() 來取得目前時間(以小時、分鐘和秒為單位)。獲得時、分、秒格式後,我們將套用轉換所有三針時、分、秒的旋轉。

步驟

步驟1 - 我們使用「background: url(clock.png) no-repeat;」程式碼在螢幕上套用時鐘的背景圖像,這裡的no-repeat是為了防止圖像重複本身。

第 2 步 - 現在我們將使用 Date() 物件來取得目前時間,我們也可以從 Date 物件中分別取得目前小時、分鐘和秒。現在我們將從 HTML 程式碼中取得小時、分鐘和秒,並將指標的旋轉轉換為 360 度。

第 3 步 - 如我們所知,360 度後度數將被視為一次旋轉。因此,如果想要從這 360 度總共得到 12 小時,可以使用 (360/12) 來完成,這將在一小時內得到 30 度。

第 4 步 - 每分鐘相同,因為我們總共需要 360 分鐘 60 分鐘,因此可以使用每分鐘所需的 (360/60) = 6 度來完成。

第 5 步 -在使用 setInterval() 的 JavaScript 部分中,我們可以每 1000ms(毫秒)運​​行一次設定時鐘,因為 1 秒等於 1000ms。

因此,我們使用new 建立日期物件Date()

來取得0到23之間的小時getHours()

取得0到59之間的分鐘getMinutes()

取得0 到59 之間的秒getSeconds()

第6 步 - 獲得所有三個值後,我們將對每隻指標進行旋轉,我們的類比時鐘將開始顯示時間。

範例(完整程式)

以下是完整的程式碼使用 HTML、CSS 和 JavaScript 建立模擬時鐘。

<!DOCTYPE html>
<html>
<head>
   <title>Analog Clock Tutorials Point</title>
   <style>
      #sizeOfAnalog {
         position: relative;
         background: url(https://www.tutorialspoint.com/assets/questions/tmp/clock.png) no-repeat;
         background-size: 100%;
         margin-top: 2%;
         margin: auto;
         height: 90vh;
         width: 90vh;
      }
      #hour_clock {
         position: absolute;
         background: black;
         border-radius: 10px;
         transform-origin: bottom;
         height: 25%;
         top: 25%;
         left: 48.85%;
         opacity: 0.8;
         width: 2%;
      }
      #minute_clock {
         position: absolute;
         background: black;
         border-radius: 10px;
         transform-origin: bottom;
         left: 48.9%;
         opacity: 0.8;
         width: 1.6%;
         height: 32%;
         top: 18%;
      }
      #second_clock {
         position: absolute;
         background: black;
         border-radius: 10px;
         transform-origin: bottom;
         width: 1%;
         height: 36%;
         top: 14%;
         left: 50%;
         opacity: 0.8;
      }
   </style>
</head>
<body>
   <div id="sizeOfAnalog">
   <div id="hour_clock"></div>
   <div id="minute_clock"></div>
   <div id="second_clock"></div>
   </div>
   <script>
      var hour = document.getElementById("hour_clock");
      var minute = document.getElementById("minute_clock");
      var seconds = document.getElementById("second_clock");

      var addClock = setInterval(function clock() {
         var date_now = new Date();
         var hr = date_now.getHours();
         var min = date_now.getMinutes();
         var sec = date_now.getSeconds();

         var calc_hr = hr * 30 + min / 2;
         var calc_min = min * 6;
         var calc_sec = sec * 6;

         hour.style.transform = "rotate(" + calc_hr + "deg)";
         minute.style.transform = "rotate(" + calc_min + "deg)";
         seconds.style.transform = "rotate(" + calc_sec + "deg)";
      }, 1000);
   </script>
</body>
</html>
登入後複製

以上是如何使用 HTML、CSS 和 JavaScript 建立模擬時鐘?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!