全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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倒计时组件  # angular倒计时组件  # angular2倒计时  # 详解Angular 4.x 动态创建组件  # Angular 2父子组件数据传递之@ViewChild获取子组件详解  # Angular2学习教程之组件中的DOM操作详解  # angular中不同的组件间传值与通信的方法  # Angular父组件调用子组件的方法  # Angular5给组件本身的标签添加样式class的方法  # Angular 2父子组件数据传递之@Input和@Output详解(下)  # Angular入口组件(entry component)与声明式组件的区别详解  # 详解angular2封装material2对话框组件  # 简单谈谈Angular中的独立组件的使用  # 截止日期  # 也会  # 考虑到  # 装了  # 大家多多  # 倒计时  # 复用  # 每一秒  # width  # css  # height  # px  # scss  # top  # content  # hour  # minute  # bottom  # left  # float 


相关文章: 如何快速查询网站的真实建站时间?  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  如何快速生成ASP一键建站模板并优化安全性?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  建站之星2.7模板快速切换与批量管理功能操作指南  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  大同网页,大同瑞慈医院官网?  深圳网站制作的公司有哪些,dido官方网站?  广州建站公司哪家好?十大优质服务商推荐  网站制作公司广州有几家,广州尚艺美发学校网站是多少?  高端建站三要素:定制模板、企业官网与响应式设计优化  TestNG的testng.xml配置文件怎么写  如何在阿里云ECS服务器部署织梦CMS网站?  制作电商网页,电商供应链怎么做?  建站之星如何保障用户数据免受黑客入侵?  建站之星如何开启自定义404页面避免用户流失?  建站OpenVZ教程与优化策略:配置指南与性能提升  网站制作大概多少钱一个,做一个平台网站大概多少钱?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  如何选择网络建站服务器?高效建站必看指南  如何在万网开始建站?分步指南解析  如何通过IIS搭建网站并配置访问权限?  如何快速查询域名建站关键信息?  建站之星客服服务时间及联系方式如何?  建站之星后台密码遗忘?如何快速找回?  中山网站制作网页,中山新生登记系统登记流程?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  定制建站策划方案_专业建站与网站建设方案一站式指南  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  香港服务器WordPress建站指南:SEO优化与高效部署策略  建站主机数据库如何配置才能提升网站性能?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  制作网站的公司有哪些,做一个公司网站要多少钱?  建站主机是否属于云主机类型?  建站10G流量真的够用吗?如何应对访问高峰?  网站制作公司排行榜,抖音怎样做个人官方网站  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  如何解决VPS建站LNMP环境配置常见问题?  广德云建站网站建设方案与建站流程优化指南  如何实现建站之星域名转发设置?  如何批量查询域名的建站时间记录?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  ,sp开头的版面叫什么?  如何通过多用户协作模板快速搭建高效企业网站?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  建站三合一如何选?哪家性价比更高?  建站之星如何一键生成手机站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。