機械表小案例之transform的應用

来源:http://www.cnblogs.com/tangting/archive/2016/12/11/6158758.html
-Advertisement-
Play Games

這個小案例主要是對transform的應用。 時鐘的3個表針分別是3個png圖片,通過setInterval來讓圖片轉動。時,分,秒的轉動角度分別是30,6,6度。 首先,通過new Date函數獲取當前時間,通過date.getSeconds(),date.getMinutes(),date.ge ...


這個小案例主要是對transform的應用。

時鐘的3個表針分別是3個png圖片,通過setInterval來讓圖片轉動。時,分,秒的轉動角度分別是30,6,6度。

首先,通過new Date函數獲取當前時間,通過date.getSeconds(),date.getMinutes(),date.getHours()獲得秒,分,時,之所以按這個順序,是因為下麵的變數會有對上面的計算,如果按時,分,秒的順序,則會報錯。

其次,另外一個點,為保證平穩的從一個時間段調到另一個時間段,在設置時間時,如小時,需要將已經過去的分鐘也轉化為小時。var hour = date.getHours() + minute/60;其他的分,秒也要按此方法轉化。

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        .clock {
            width: 600px;
            height: 600px;
            margin: 100px auto;
            background: url(images/clock.jpg) no-repeat;
            position: relative;
        }

        .clock div {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: url(images/hour.png) no-repeat center center;
        }

        #m {
            background-image: url(images/minute.png);
        }

        #s {
            background-image: url(images/second.png);
        }
    </style>
</head>
<body>
<div class="clock">
    <div id="h"></div>
    <div id="m"></div>
    <div id="s"></div>
</div>

<script>
    var h = document.getElementById("h");
    var m = document.getElementById("m");
    var s = document.getElementById("s");


    function setTime(){
        //獲取當前時間
        var date = new Date();

        var second = date.getSeconds()+date.getMilliseconds()/1000;
        s.style.transform = "rotate("+6*second+"deg)";

        var minute = date.getMinutes()+second/60;
        m.style.transform = "rotate("+6*minute+"deg)";

        var hour = date.getHours() + minute/60;
        h.style.transform = "rotate("+30*hour+"deg)";

    }

    setTime();

    setInterval(setTime, 15);
</script>
</body>
</html>

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、基礎知識 最早的基礎知識僅限於那麼一點點的html和css,比牛毛還牛毛的一點點。所以最開始是從immoc上看視頻和跟著練習,花了有一個多月,看完一個路徑從:零開始學習ThinkPHP框架,由於基本沒有基礎,所以一開始有的地方很吃力,後來就先試著用不求甚解的方法去看,以後根據需要再慢慢來補,這樣 ...
  • 在SQL語句中有一些寫的是這樣的: 其中的“xx_id = %d”,這裡的%d指的是要取一個十進位的數(d的意思就是decimal十進位的意思),十進位數的內容就是後面的$bl['student_id']這個。 ps:每天收穫一點點! ...
  • 開始學習Jetty源碼,費了小半天才編譯成功,把自己拆過的坑記錄下來。 ...
  • 37:雇佣兵 37:雇佣兵 提問 提問 總時間限制: 1000ms 記憶體限制: 65536kB描述 雇佣兵的體力最大值為M,初始體力值為0、戰鬥力為N、擁有X個能量元素。 當雇佣兵的體力值恰好為M時,才可以參加一個為期M天的戰鬥期,戰鬥期結束體力值將為0。在同一個戰鬥期內,雇佣兵每連續戰鬥n天,戰鬥 ...
  • 網路方面用的比較多的庫是libevent和boost.asio,兩者都是跨平臺的。其中libevent是基於Reactor實現的,而boost.asio是基於Proactor實現的。Reactor和Proactor模式的主要區別就是真正的操作(如讀/寫)是由誰來完成的,Reactor中需要應用程式自 ...
  • 合理運用向上造型 ,能夠減少代碼量,優化代碼.總結如下: 1,向上造型 類型提升,自動類型轉換 基本類型自動類型轉換 byte → short → int → long → float → double ↑ char 引用類型自動類型轉換(向上造型) 小類型 → 自動轉換 → 大類型 //父類引用調 ...
  • 相關知識自行搜索,直接上乾貨。。。 使用的資源: nginx主伺服器一臺,nginx備伺服器一臺,使用keepalived進行宕機切換。 tomcat伺服器兩台,由nginx進行反向代理和負載均衡,此處可搭建伺服器集群。 redis伺服器一臺,用於session的分離共用。 nginx主伺服器:19 ...
  • HTTP API介面安全設計 API介面調用方式 HTTP + 請求簽名機制 HTTP + 參數簽名機制 HTTPS + 訪問令牌機制 有沒有更好的方案? OAuth授權機制 OAuth2.0服務的幾種授權流程 ... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...