ダイナミッククロックを実現する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 でパスワードを忘れた場合の対処方法

推薦する

TypeScript ジェネリックを簡単に説明する方法

目次概要ジェネリック医薬品とはビルドシステムジェネリック医薬品の一般的な理解ジェネリッククラスジェネ...

LinuxベースのSelenium環境を構成し、操作を実装する

1. Linux で Selenium を使用する1. Chromeをインストールする次のコマンドを...

ウェブページのメモリとCPU使用量を削減する方法

<br />Web ページによっては、サイズは大きくないように見えても開くのに非常に時間...

MySQL のインデックスにおける NULL の影響についての詳細な説明

序文私は多くのブログを読み、弊社の DBA を含む多くの人々が、MySql では列に null が含...

Linux で boost.python を使用して C++ 動的ライブラリを呼び出す方法

序文最近、C++ 動的ライブラリをテストするためにロボット フレームワークを使い始めました。ロボット...

MySQLでホワイトリストアクセスを設定する方法

MySQLでホワイトリストアクセスを設定する手順1. ログイン mysql -uroot -pmys...

Centos での TCPWrappers アクセス制御の実装

1. TCP ラッパーの概要TCP Wrappers は TCP サービス プログラムを「ラップ」し...

React NativeとiOSの相互作用の詳細な説明

目次前提条件RNはiOSに価値を渡す方法1: ネイティブに値を通常通り渡す方法2: コールバック関数...

Vue-router は現在の場所 (/path) へのナビゲーションを許可しません。エラーの原因と修正

目次エラーメッセージ原因エラーのデモンストレーション回避策方法1方法2方法3エラーメッセージ現在の場...

モバイルデバイス用のメタタグ設定の完全なリスト

序文以前フロントエンドを勉強していたとき、メタタグに対する私の理解はこの一文だけでした。 <メ...

MySQL 8.0.20でNavicatをインストールして接続する方法と注意すべき点

注意事項1. まず、mysql インストール ディレクトリに次の内容の my.ini ファイルを作成...

Nginx転送マッチングルールの実装

1. 正規表現マッチング大文字と小文字を区別するマッチングの場合 ~ ~*は大文字と小文字を区別しな...

Webフロントエンド開発におけるエラーを見つけるための基本的な考え方

WEB開発は主に2つのインタラクション(B/Sデータ)から構成されますブラウザ: 1html、css...

Centos6.5 の rpm パッケージから mysql5.7 をインストールするときに発生する初期化エラーの解決策

1. rzをサーバーにアップロードして解凍する rz [root@mini2 アップロード]# ta...

黒、白、グレーの控えめでエレガントなウェブデザインを鑑賞

クラシックな色の組み合わせの中でも、黒、白、グレーの時代を超えた魅力を否定できる人はおそらくいないで...