ダイナミッククロックを実現するJS+CSS

ダイナミッククロックを実現するJS+CSS

この記事の例では、動的な時計を実装するためのJS + CSSの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。

知識ポイントの要約:

document.querySelector()メソッドは、指定された CSS セレクターに一致するドキュメント内の要素を返します。

setInterval()メソッドは、指定された期間 (ミリ秒単位) で関数を呼び出したり、式を評価したりします。
setInterval() メソッドは、clearInterval() が呼び出されるかウィンドウが閉じられるまで、関数を繰り返し呼び出します。 setInterval() によって返される ID 値は、clearInterval() メソッドのパラメーターとして使用できます。

HTML+js部分

<!DOCTYPE html>
<html lang="ja">

<ヘッド>
 <メタ文字セット="UTF-8">
 <meta http-equiv="X-UA-compatible" content="IE=edge">
 <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
 <link rel="スタイルシート" href="shiying.css" >
 <title>ドキュメント</title>
</head>

<本文>
 <div class="時計">
 <div class="時間">
 <div class="hr" id="hr"></div>
 </div>
 <div class="min">
 <div class="mn" id="mn"></div>
 </div>
 <div class="sec">
 <div class="sc" id="sc"></div>
 </div>
 </div>
 <script type="text/javascript">
 定数度 = 6;
 定数hr = document.querySelector('#hr');
 定数 mn = document.querySelector('#mn');
 定数sc = document.querySelector('#sc');

 間隔を設定する(() => {

 day = new Date();
 hh = day.getHours() * 30 とします。
 mm = day.getMinutes() * deg; とします。
 ss = day.getSeconds() * deg; とします。

 hr.style.transform = `rotateZ(${(hh) + (mm / 12)}deg)`;
 mn.style.transform = `rotateZ(${mm}deg)`;
 sc.style.transform = `rotateZ(${ss}deg)`;
 })

 </スクリプト>
</本文>

</html>

CSS部分

*{
 マージン:0;
 パディング:0;
 ボックスのサイズ: 境界線ボックス;
}
体{
 ディスプレイ: フレックス;
 コンテンツの中央揃え: 中央;
 アイテムの位置を中央揃えにします。
 最小高さ: 100vh;
 背景: #091921;
}
。クロック{
 幅: 350ピクセル;
 高さ: 350ピクセル;
 ディスプレイ:フレックス;
 コンテンツの中央揃え: 中央;
 アイテムの位置を中央揃えにします。
 背景: url(1613462007944.png);
 背景サイズ: カバー;
 境界線:4px 実線 #091921;
 境界線の半径: 50%;
 ボックスシャドウ: 0 -15px 15px rgba(255,255,255,0.05),
 インセット 0 -15px 15px rgba(255,255,255, 0.05),
 0 -15px 15px rgba(0,0,0,0.05),
 インセット 0 -15px 15px rgba(0,0,0, 0.05);
}
.clock:前
{
 コンテンツ:"";
 位置: 絶対;
 幅: 15px;
 高さ: 15px;
 背景: #fff;
 境界線の半径: 50%;
 zインデックス:10000;

}
.時計 .時間、
.時計 .分、
.時計 .秒
{
 位置: 絶対;

}
.clock .hour, .hr{
 幅: 160ピクセル;
 高さ: 160px;
}
.clock .min, .mn{
 幅: 190ピクセル;
 高さ: 190ピクセル;
}
.clock .sec, .sc{
 幅: 230ピクセル;
 高さ: 230px;
}
.hr、.mn、.sc{
 ディスプレイ: フレックス;
 コンテンツの中央揃え: 中央;
 位置: 絶対;
 境界線の半径: 50%;
}
.hr:前{
 コンテンツ:"";
 位置: 絶対;
 幅: 8px;
 高さ: 80px;
 背景: #ff105e;
 zインデックス: 10;
 境界線の半径: 6px 6px 0 0;
}
.mn:前{
 コンテンツ:"";
 位置: 絶対;
 幅: 4px;
 高さ: 90px;
 背景: #fff;
 zインデックス: 11;
 境界線の半径: 6px 6px 0 0;
}
.sc:前{
 コンテンツ:"";
 位置: 絶対;
 幅: 4px;
 高さ: 150px;
 背景: #fff;
 zインデックス:12;
 境界線の半径: 6px 6px 0 0;
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • jsはシンプルなデジタル時計効果を実現します
  • HTML5 キャンバス js (デジタル時計) サンプルコード
  • JavaScript HTML 時計効果を簡単に実装する 5 つのステップ
  • Tik Tokのコンパス時計を実装するJavaScript
  • シンプルな時計のサンプルコードを実装するJavaScript
  • JavaScript に基づく動的な時計効果の実現
  • シンプルな時計効果の js 実装コード
  • 動的な時計効果を実現するJavascript
  • JavaScript 入門: ダイナミック クロック、完全なクロックを表示するいくつかの方法、新年までのカウントダウン
  • JS で実装された Web ページのカウントダウン デジタル時計効果

<<:  Tomcat ディレクトリ構造の詳細な紹介

>>:  MySQL 5.7.17 でパスワードを忘れた場合の対処方法

推薦する

一般的でない js 演算演算子の概要

目次2. カンマ演算子3. JavaScript Null 結合演算子 (??) 4. JavaSc...

mysql インストーラ コミュニティ 8.0.16.0 のインストールと構成のグラフィック チュートリアル

mysqlインストーラコミュニティ8.0.16.0インストールグラフィックチュートリアル、参考までに...

JavaScript で実装された 7 つのソート アルゴリズムの概要 (推奨!)

目次序文バブルソート基本アルゴリズム2 番目の書き方は、基本的なアルゴリズムに基づいて改良されていま...

VMware仮想マシンを使用してUbuntu 20.04をインストールする完全なチュートリアル

Ubuntu は比較的人気のある Linux デスクトップ システムです。最近、Ubuntu 20....

Django+vue 登録とログインのサンプルコード

登録するフロントエンドは、vue の axios を使用して値を渡し、取得したアカウントとパスワード...

JSが5つ星の賞賛を獲得

この記事では、5つ星の評価を獲得するためのJSの具体的なコードを参考までに共有します。具体的な内容は...

MySQL カーソルの原理と使用例の分析

この記事では、例を使用して MySQL カーソルの原理と使用方法を説明します。ご参考までに、詳細は以...

MySQL ストアド プロシージャにおけるループ ステートメント (WHILE、REPEAT、LOOP) の使用法の分析

この記事では、例を使用して、MySQL ストアド プロシージャでのループ ステートメント (WHIL...

IOSデータベースアップグレードデータ移行の詳細な例

IOSデータベースアップグレードデータ移行の詳細な例まとめ:昔、データベースのバージョン アップグレ...

Alibaba Cloud OSS アクセス権設定(RAM 権限制御)実装

シナリオmyBuket の static/material/ ディレクトリなど、Alibaba Cl...

Vuex全体のケースの詳細な説明

目次1. はじめに2. 利点3. 使用手順1. Vuexをインストールする2. Vuexを参照する3...

Vue+Openlayerはグラフィックスのドラッグと回転変形効果を実現します

目次序文関連資料成果を達成する実装手順序文Openlayer には独自の拡張プラグイン ol-ext...

複数の値を返す MySQL ストアド プロシージャ メソッドの例

この記事では、例を使用して、MySQL ストアド プロシージャで複数の値を返す方法について説明します...

Alibaba Cloud ECSインスタンスのユーザールートパスワードとリモート接続方法を設定する方法

Alibaba Cloud サーバーを購入した後、新しいインスタンスが正常に動作できるようにするには...

バインドを使用してDNSサーバーを設定する方法

DNS(ドメインネームサーバー)は、ドメイン名とそれに対応する IP アドレスを変換するサーバーです...