angular2倒计时组件使用详解

 更新时间:2017年01月12日 14:12:07   作者:weixin_36333953  
这篇文章主要为大家详细介绍了angular2倒计时组件的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

项目中遇到倒计时需求,考虑到以后在其他模块也会用到,就自己封装了一个组件。便于以后复用。

组件需求如下:
- 接收父级组件传递截止日期
- 接收父级组件传递标题

组件效果

变量


组件countdown.html代码

<div class="count-down">
  <div class="title">
    <h4>
      {{title}}
    </h4>
  </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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • angular2中Http请求原理与用法详解

    angular2中Http请求原理与用法详解

    这篇文章主要介绍了angular2中Http请求原理与用法,结合实例形式分析了AngularJS中http相关模块实现http服务请求与相应的相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • AngularJS中的作用域实例分析

    AngularJS中的作用域实例分析

    这篇文章主要介绍了AngularJS中的作用域,结合实例形式较为详细的分析了AngularJS涉及作用域的相关问题与注意事项,需要的朋友可以参考下
    2018-05-05
  • AngularJS入门教程之过滤器详解

    AngularJS入门教程之过滤器详解

    本文主要讲解AngularJS 过滤器,这里整理了过滤器的相关资料并附示例代码,帮助大家学习AngularJS的知识,有需要的小伙伴可以参考下
    2016-08-08
  • angularjs客户端实现压缩图片文件并上传实例

    angularjs客户端实现压缩图片文件并上传实例

    这篇文章主要介绍了angularjs客户端实现压缩图片文件并上传实例,本文直接给出代码实例,需要的朋友可以参考下
    2015-07-07
  • Angular实现下拉框模糊查询功能示例

    Angular实现下拉框模糊查询功能示例

    这篇文章主要介绍了Angular实现下拉框模糊查询功能,涉及AngularJS事件响应及字符串查询等相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • AngularJS基础 ng-model-options 指令简单示例

    AngularJS基础 ng-model-options 指令简单示例

    本文主要介绍AngularJS ng-model-options 指令,这里对ng-model-options指令的基本资料进行整理,有需要的小伙伴可以参考下
    2016-08-08
  • AngularJS入门教程之控制器详解

    AngularJS入门教程之控制器详解

    本文主要介绍 AngularJS控制器,这里对 AngularJS控制器的知识详细讲解,并提供实例代码有需要的小伙伴可以参考下
    2016-07-07
  • angularjs中的单元测试实例

    angularjs中的单元测试实例

    这篇文章主要介绍了angularjs中的单元测试实例,本文主要说说利用karma和jasmine来进行ng模块的单元测试,需要的朋友可以参考下
    2014-12-12
  • Angular本地存储安全分析详解

    Angular本地存储安全分析详解

    这篇文章主要为大家介绍了Angular本地存储安全分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 深究AngularJS之ui-router详解

    深究AngularJS之ui-router详解

    本篇文章主要介绍了深究AngularJS之ui-router详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06

最新评论