angular2倒计时组件使用详解


Posted in Javascript onJanuary 12, 2017

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

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

组件效果

angular2倒计时组件使用详解

变量

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>

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

Javascript 相关文章推荐
yepnope.js 异步加载资源文件
Sep 08 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
Nov 20 Javascript
js跨域访问示例(客户端/服务端)
May 19 Javascript
JS模式之单例模式基本用法
Jun 30 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
Nov 29 Javascript
又一款js时钟!transform实现时钟效果
Aug 15 Javascript
浅析Ajax语法
Dec 05 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
Aug 03 Javascript
Angular移动端页面input无法输入的解决方法
Nov 14 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
Dec 29 Javascript
通过npm或yarn自动生成vue组件的方法示例
Feb 12 Javascript
Vue商品控件与购物车联动效果的实例代码
Jul 21 Javascript
JavaScript中localStorage对象存储方式实例分析
Jan 12 #Javascript
利用VUE框架,实现列表分页功能示例代码
Jan 12 #Javascript
js中常用的Math方法总结
Jan 12 #Javascript
Vue数据驱动模拟实现4
Jan 12 #Javascript
移动端点击态处理的三种实现方式
Jan 12 #Javascript
js手机号批量滚动抽奖实现代码
Apr 17 #Javascript
js图片轮播手动切换特效
Jan 12 #Javascript
You might like
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
Ajax PHP 边学边练 之三 数据库
2009/11/26 PHP
PHPCMS的使用小结
2010/09/20 PHP
PHP数组循环操作详细介绍 附实例代码
2013/02/03 PHP
php的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
PHP中cookie和session的区别实例分析
2014/08/28 PHP
php的闭包(Closure)匿名函数详解
2015/02/22 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
php 获取xml接口数据的处理方法
2018/05/31 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
用倒置滤镜把div倒置,再把table倒置。
2007/07/31 Javascript
javascript 函数式编程
2007/08/16 Javascript
extjs 初始化checkboxgroup值的代码
2011/09/21 Javascript
JS控制日期显示的小例子
2013/11/23 Javascript
jQuery的position()方法详解
2015/07/19 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
2016/02/18 Javascript
有关easyui-layout中的收缩层无法显示标题的解决办法
2016/05/10 Javascript
AngularJS之依赖注入模拟实现
2016/08/19 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
微信小程序 textarea 详解及简单使用方法
2016/12/05 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
swiper实现导航滚动效果
2020/12/13 Javascript
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
Python模块文件结构代码详解
2018/02/03 Python
python tornado微信开发入门代码
2018/08/24 Python
python贪吃蛇游戏代码
2020/04/18 Python
python抢购软件/插件/脚本附完整源码
2021/03/04 Python
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
秘书专业自荐信范文
2013/12/26 职场文书
八一建军节演讲稿
2014/09/10 职场文书
合作合同协议书
2016/03/21 职场文书