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

组件需求如下:
- 接收父级组件传递截止日期
- 接收父级组件传递标题
组件效果
变量
组件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小时内与您取得联系。