デジタル時計効果を実現するJavaScript

デジタル時計効果を実現するJavaScript

この記事の例では、JavaScriptでデジタル時計効果を実装するための具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。

まずは効果を見て、ダイナミックデジタル時計

jQueryは要素を取得するためだけに使われ、ほんの少しだけ

オブジェクト指向開発

コードを見てください

HTML、jQueryとjsを自分でインポート、jQueryを先に

<本文>
    <div class="wrapper">
        <div class="column">
            <!-- この div は 0、1、または 2 の 10 の位を表します。 -->
            <div>0</div>
            <div>1</div>
            <div>2</div>
        </div>
        <!-- 次の内容は HTML コードで記述するには冗長すぎるため、js を使用して記述します -->
        <div class="列 10"></div>
        <div class="coln">:</div>
        <div class="列 6"></div>
        <div class="列 10"></div>
        <div class="coln">:</div>
        <div class="列 6"></div>
        <div class="列 10"></div>
    </div>
</本文>

CS

*{
     マージン: 0;
     パディング: 0;
}
html,本文{
     高さ: 100%;
     幅: 100%;
     背景色: #0e141b;
    オーバーフロー: 非表示;
    /* オーバーフローを非表示に設定 */
}
.ラッパー{
    テキスト配置: 中央;
    幅: 100%;
}
.wrapper .column、
.ラッパー .coln{
    表示: インラインブロック;
    垂直方向の位置合わせ: 上;
    色: rgba(224,230,235,0.89);
    フォントサイズ: 86px;
    行の高さ: 86px;
    フォントの太さ: 300;
}
。カラム{
    遷移: すべて 300 ミリ秒のイーズイン。
}
.coln{
    /* コロンの位置 */
    変換: translateY(calc(50vh - 83px));
}
/* 以下は異なるクラス名に対応する透明度です*/
。見える{
    不透明度: 1;
}
。近い{
    不透明度: 0.25;
}
。遠い{
    不透明度: 0.15;
}
。距離{
    不透明度: 0.05;
}

JS

関数 Index(dom, use) {
    // 渡された DOM 要素を配列に変換します。this.column = Array.from(dom);
    // use をグローバル状態に転送します。これは、表示される時間システムが 112 時間か 24 時間かを決定するためです。this.use = use;
    // この配列は、後で設定されるクラス名です。 this.classList = ['visible', 'close', 'far', 'distance', 'distance', 'distance', 'distance', 'distance'];
    このメソッドは、Dom を作成します。
    this.start();//開始}
// 関数の開始 Index.prototype.start = function () {
    var self = this;
    setInterval(関数() {
        var c = self.getClock();
        // コンソールログ(c);
        self.column.forEach(関数 (ele, インデックス) {
            var n = + c[インデックス];
            var offset = n * 86; //移動距離 console.log(offset);
            $(ele).css({
                '変換': 'translateY(calc(50vh - ' + offset + 'px - 73px))'
                // 移動を設定する });
            Array.from(ele.children).forEach(function (ele2, index2) {
                var className = self.getClass(n, index2);
                // クラス名を設定する関数を呼び出します $(ele2).attr('class', className);
            })
        })
    }, 500);
};
// 距離時間が異なる要素に異なるクラス名を設定する Index.prototype.getClass = function (n, i) {
    var className = this.classList.find(function (ele, index) {
        i - インデックス === n || i + インデックス === n を返します。
    })
    クラス名を返します || "";
}
 
// 時間を取得してフォーマットします。文字列 21:06:09 ==> 210609
Index.prototype.getClock = 関数 () {
    var d = 新しい日付();
    // ここでは三項演算子を使用しています。use が true の場合は値を取得します。false の場合は、12 の余りを 12 時間制に変換します。 return [this.use ? d.getHours() : d.getHours() % 12 || 12, d.getMinutes(), d.getSeconds()].reduce(function (p, n) {
        p + ('0' + n).slice(-2) を返します。
        // ここでは 1 桁に 0 を加算します。たとえば、1 に 0 を加算すると 01 になり、12 に 0 を加算すると 012 になりますが、値の最後の 2 桁を取ると 12 になります。
    }, '')
};
// すべての HTML 要素を HTML ファイルに書き込むのは冗長すぎるため、for ループを使用して追加します。Index.prototype.creatDom = function () {
    (var i = 0; i < 6; i++) の場合 {
        var oDiv = '<div>' + i + '</div>';
        $(".6").append(oDiv);
    }
    (var i = 0; i < 10; i++) の場合 {
        var iDiv = '<div>' + i + '</div>';
        $(".ten").append(iDiv);
    }
};
 
// 2 番目のパラメータ。true の場合は 24 時間制、false の場合は 12 時間制です。new Index($('.column'), true);

js については比較的完全なコメントを書いたので、理解できるはずです。

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

以下もご興味があるかもしれません:
  • 動的なデジタル時計を実装するJavaScript
  • デジタル時計効果を実現するJavaScript
  • Vue.js は日付と週を含むデジタル時計機能の例を実装します
  • スクロールするデジタル時計効果を実現する JS+CSS
  • jsはシンプルなデジタル時計効果を実現します
  • JSを使用してカウントダウンデジタル時計効果を表示する
  • スクロール効果を実現する JavaScript デジタル時計の例
  • JS で実装された Web ページのカウントダウン デジタル時計効果
  • JavaScript デジタル時計の例の共有
  • HTML5 キャンバス js (デジタル時計) サンプルコード

<<:  MySQLでルートユーザーのパスワードを変更する方法

>>:  Linux でジャンプ サーバー経由でリモート サーバーに接続し、ファイルを転送する方法

推薦する

MySQLフィルタリングレプリケーションのアイデアの詳細な説明

目次mysql フィルター レプリケーションメインデータベースに実装ライブラリから実装いくつかの質問...

docker run -v はデータボリュームを異常にマウントし、コンテナのステータスは常に再起動になります。

問題点: docker run に -v パラメータを追加すると、コンテナは常に再起動状態になります...

Nginx のパフォーマンスを向上させるための提案

Web アプリケーションが 1 台のマシンでのみ実行される場合、パフォーマンスを向上させるのは非常に...

Ubuntu で apt-get を使用して mysql をインストールおよび完全にアンインストールする方法の詳細な説明

1. mysqlをインストールします。 udo apt-getでmysql-serverをインストー...

Vue マルチ選択リスト コンポーネントの詳細な説明

マルチ選択は、すべてのオプションを一覧表示し、ユーザーが Ctrl/Shift キーを使用して複数選...

Win10 VM 仮想マシンに Mac OS10.14 を完璧にインストールする (グラフィック チュートリアル)

最近、Apple の記者会見を見てとても興奮したので、Mac システムを体験して Apple の素晴...

フレックスインサイドボタンの垂直方向の中央揃えが中央揃えにならない問題の解決方法

問題の説明ボタンのスタイルはアイコン + テキストです。フレックス レイアウトを使用して垂直方向に中...

jQueryはシャトルボックス効果を実現します

この記事では、シャトルボックス効果を実現するためのjQueryの具体的なコードを参考までに紹介します...

MySQL 選択最適化ソリューションに関する簡単な説明

目次実生活からの例クエリが遅い最適化する方法カウント制限最大値と最小値 min&max実生活...

Linux でネットワーク パケット損失と遅延をシミュレートする方法

netem と tc: netem は、Linux カーネル バージョン 2.6 以降で提供されるネ...

MySQLスタートアップが起こした事故の実録

目次背景MySQLが完全に起動したかどうかを確認する方法事故最初の変更2回目の改訂要約するMySQL...

シェルスクリプトを使用したMySQLデータベースの自動バックアップ

シェルスクリプトを使用したMySQLデータベースの自動バックアップデータベースを頻繁にバックアップす...

セマンティック XHTML タグの紹介

まず最初に指摘しておきたいのは、人間は視覚的な区分を通じてコン​​テンツの意味を判断できるが、検索エ...

Vue モバイル開発で better-scroll を使用するときにクリック イベントが失敗する問題の解決策

最近、モバイル プロジェクトの開発方法を学ぶために vue を使用し、スクロールには better-...

忘れられたボタンタグ

注:この記事は他の人によって翻訳されていますが、考えるべき点が多く、理解しにくい点もあると感じていま...