momentJs を使用してカウントダウン コンポーネントを作成する (サンプル コード)

momentJs を使用してカウントダウン コンポーネントを作成する (サンプル コード)

今日はvueとmomentで作ったカウントダウンを紹介したいと思います。具体的な内容は以下のとおりです。

表示スタイル:

<テンプレート>
    <div class="table-right flex-a-center">
        <div class="time-text">
            <span class="timeTextSpan" v-for="item,h のインデックス" >{{item}}</span>
            <span class="timeTextSpan1">: </span>
            <span class="timeTextSpan" v-for="item,m のインデックス" >{{item}}</span>
            <span class="timeTextSpan1">: </span>
            <span class="timeTextSpan" v-for="item,s のインデックス" >{{item}}</span>
        </div>
    </div>
</テンプレート>
<スクリプト>
'moment' から moment をインポートする
エクスポートデフォルト{
  小道具: {
    endTime: { }, //最終受信時刻 2021-12-17 16:29:20
  },
  データ() {
    //ここにデータを保存します return {
      h:'00',
      m:'00',
      s:'00',
      タイマー:null
    };
  },
  時計:
    終了時間: {
      ハンドラ(e) {
        もし(e){
          自分 = これ
          クリア間隔(this.timer)
          this.timer = setInterval(function(){self.init()},1000)
        }
      },
      深い:本当、
      即時: 真
    }
  },
  マウント() {
    自分 = これ
    自己初期化()
    クリア間隔(this.timer)
    this.timer = setInterval(function(){self.init()},1000)
  },
  //メソッドコレクションメソッド: {
    初期化(){
        time = moment(this.endTime).diff(moment()) とします。
        時間 <= 0 の場合
          クリア間隔(this.timer)
          this.onOver()
          戻る
        }
        t = 時間 / 1000 とします。
        let d = Math.floor(t / (24 * 3600)); // 残りの日数。必要に応じて補うことができます。let h = Math.floor((t - 24 * 3600 * d) / 3600) + d*24; // 日数は必要ありません。日数を時間に変換します。let _h = Math.floor((t - 24 * 3600 * d) / 3600) // 日数はそのままにして、時間数を取得します。let m = Math.floor((t - 24 * 3600 * d - _h * 3600) / 60);
        s = Math.floor((t - 24 * 3600 * d - _h * 3600 - m * 60));とします。
       
        this.h = 文字列(h).長さ == 1? '0'+文字列(h):文字列(h)
        this.m = 文字列(m).長さ == 1? '0'+文字列(m):文字列(m)
        this.s = 文字列.length == 1? '0'+文字列:文字列
    },
    onOver() {
      this.$emit('over') //カウントダウン終了時のコールバック}
 
  },
  beforeDestroy(){
    this.timer = null
    クリア間隔(this.timer)
  }
}
</スクリプト>
<style lang='less' スコープ>
@import url("@/assets/css/supplier.less");
 

  .table-right {
    フォントサイズ: 12px;
    色: #757e8a;
    .timeTextSpan{
      表示: インラインブロック;
      幅: 14px;
      高さ: 22px;
      テキスト配置: 中央;
      背景: #F1F0F0;
      境界線の半径: 2px;
      右マージン: 2px;
      フォントサイズ: 16px;
      色: #ff8a2b;
      フォントの太さ: 太字;
    }
    .timeTextSpan1{
      表示: インラインブロック;
      幅: 14px;
      テキスト配置: 中央;
      垂直方向の位置合わせ: 下;
      色:#202D40;
      フォントサイズ: 16px;
      フォントの太さ: 太字;
    }
   
    .time-text {
      左マージン: 10px;
    }
  }
</スタイル>

momentJs を使用してカウントダウン コンポーネントを作成する方法については、これで終わりです。momentJs カウントダウン コンポーネントの関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue は CLI 3.0 + momentjs + lodash パッケージ最適化を実装します

<<:  HTML の表のフレームとルール属性の詳細な説明

>>:  テーブルレイアウトの長所と短所、そして推奨されない理由

推薦する

ウェブ開発者やデザイナーにとって欠かせないオンラインウェブツールとアプリケーション

これまでの記事で、フロントエンド開発者にとって必須のツール、スクリプト、リソースのコレクションを紹介...

背景属性の8つの属性値の詳細解説(面接の質問)

CSSの背景プロパティの値背景色背景画像背景繰り返し背景位置背景添付複合プロパティ: 背景: ba...

WeChatアプレットのオーディオコンポーネントがiOSで再生できない問題の解決策

解決策:クリック イベントをオーディオ コンポーネントにバインドし、再生メソッドと一時停止メソッドを...

LinuxサーバーでRabbitMQ管理ページにアクセスできない問題を解決

私のプロジェクトの特定の機能ではサーバーが rabbitmq にメッセージを送信する必要があるため、...

Linux FTP匿名アップロードとダウンロードが自動的に開始される問題を解決する

勉強や仕事で FTP サーバーを頻繁に使用する場合は、起動時に自動的に起動するように設定できます。設...

MySQL 8.0.20 のインストールと設定方法のグラフィックチュートリアル

MySQLのダウンロードとインストール(バージョン8.0.20)のチュートリアルは参考までに、具体的...

TypeScript での関数オーバーロード

目次1. 関数シグネチャ2. 関数のオーバーロード2.1 オーバーロードされたシグネチャは呼び出し可...

Vue モバイル プロジェクトでページ キャッシュを実装する方法のサンプル コード

背景モバイル デバイスでは、ページ ジャンプ間のキャッシュが必須要件です。例: ホームページ =&g...

MySQL8 ベースの docker-compose デプロイメント プロジェクトの実装

1. まず、次のパスに従って対応するフォルダを作成します。 ローカルのdockerでmysqlを実行...

IISMonitor を使用して Web ページを監視し、IIS を自動的に再起動します。

目次1. ツールの紹介2. ワークフロー3. 操作インターフェースとパラメータ設定(1)監視と再起動...

jQueryカルーセル機能を実装する方法

この記事では、jQueryカルーセル機能の実装コードを参考までに共有します。具体的な内容は次のとおり...

JavaScript における変数と関数の昇格の詳細な例

js 実行字句解析フェーズ: 形式パラメータ解析、変数宣言解析、関数宣言解析の 3 つの部分が含まれ...

ウェブデザインの概要

<br />1998年に最初の個人ページが誕生してから2008年の今日まで、デザイン業界...

MySQL binlog ログを開く方法

binlog は、すべての mysql dml 操作を記録するバイナリ ログ ファイルです。 bin...

Linux 継続的インテグレーションで Maven を自動的にインストールする方法

Mavenパッケージを解凍する tar xf apache-maven-3.5.4-bin.tar....