中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

angular2倒計時組件使用詳解

發布時間:2020-08-23 23:41:10 來源:腳本之家 閱讀:322 作者:weixin_36333953 欄目:web開發

項目中遇到倒計時需求,考慮到以后在其他模塊也會用到,就自己封裝了一個組件。便于以后復用。

組件需求如下:
- 接收父級組件傳遞截止日期
- 接收父級組件傳遞標題

組件效果

angular2倒計時組件使用詳解

變量

angular2倒計時組件使用詳解

組件countdown.html代碼

<div class="count-down">
  <div class="title">
    <h5>
      {{title}}
    </h5>
  </div>
  <div class="body">
    <div class="content">
      <div class="top">
        {{hour}}
      </div>
      <div class="bottom">
        小時
      </div>
    </div>
    <div class="content">
      <div class="top">
        {{minute}}
      </div>
      <div class="bottom">
        分鐘
      </div>
    </div>
    <div class="content">
      <div class="top">
        {{second}}
      </div>
      <div class="bottom">
        秒
      </div>
    </div>
  </div>
</div>

組件countdown.scss代碼

.count-down{
  width:100%;
  height:100px;
  background: rgba(0,0,0,0.5);
  padding: 2px 0;
  .body{
    margin-top: 8px;
    .content{
      width:29%;
      float: left;
      margin: 0 2%;
      .top{
        font-size: 20px;;
        line-height: 30px;
        color: black;
        background: white;
        border-bottom: 2px solid black;
      }
      .bottom{
        font-size: 14px;
        line-height: 20px;
        background: grey;
      }
    }
  }
}

組件countdown.component.ts代碼

import { Component, OnInit, Input, OnDestroy, AfterViewInit } from '@angular/core';

@Component({
 selector: 'roy-countdown',
 templateUrl: './countdown.component.html',
 styleUrls: ['./countdown.component.scss']
})
export class CountdownComponent implements AfterViewInit, OnDestroy {
 // 父組件傳遞截止日期
 @Input() endDate: number;
 // 父組件傳遞標題
 @Input() title: string;
 // 小時差
 private hour: number;
 // 分鐘差
 private minute: number;
 // 秒數差
 private second: number;
 // 時間差
 private _diff: number;
 private get diff() {
  return this._diff;
 }
 private set diff(val) {
  this._diff = Math.floor(val / 1000);
  this.hour = Math.floor(this._diff / 3600);
  this.minute = Math.floor((this._diff % 3600) / 60);
  this.second = (this._diff % 3600) % 60;
 }
 // 定時器
 private timer;

 // 每一秒更新時間差
 ngAfterViewInit() {
  this.timer = setInterval(() => {
   this.diff = this.endDate - Date.now();
  }, 1000);
 }

 // 銷毀組件時清除定時器
 ngOnDestroy() {
  if (this.timer) {
   clearInterval(this.timer);
  }
 }
}

使用方法demo.html

<roy-countdown title="距離考試還有:" [endDate]="endDate"></roy-countdown>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

盈江县| 芦山县| 甘南县| 新河县| 崇信县| 凭祥市| 青阳县| 柳河县| 西昌市| 沭阳县| 泾源县| 东山县| 遵义市| 山西省| 南阳市| 林周县| 囊谦县| 获嘉县| 平昌县| 门头沟区| 临江市| 佛山市| 琼海市| 隆德县| 崇信县| 赫章县| 西林县| 惠州市| 卢氏县| 东辽县| 牙克石市| 石楼县| 隆化县| 玛曲县| 麻江县| 四会市| 会宁县| 娄底市| 玛多县| 商河县| 天柱县|