本文将介绍如何使用JavaScript实现一个基本的倒计时功能,该功能在达到预设时间后会触发提示窗口。通过这段代码,我们可以学习到如何处理日期和时间,以及如何设置定时器来更新倒计时显示。 在JavaScript中,倒计时功能通常用于在特定日期或时间到来之前显示剩余时间。以下是一段实现倒计时功能的代码示例: 首先,HTML部分创建了一个简单的表单,包含一个文本区域显示倒计时: ```html <form name="form1"> <div align="center"> <center>倒计时至2010年:<br> <input type="textarea" name="left" size="35" style="text-align:center"> </center> </div> </form> ``` 接着是JavaScript部分,这部分主要负责计算倒计时并更新显示: ```javascript function startclock() { var timerID = null; var timerRunning = false; function showtime() { var Today = new Date(); var NowHour = Today.getHours(); var NowMinute = Today.getMinutes(); var NowMonth = Today.getMonth(); var NowDate = Today.getDate(); var NowYear = Today.getYear(); if (NowYear < 2000) NowYear = 1900 + NowYear; var NowSecond = Today.getSeconds(); // 剩余小时、分钟、秒、月、日和年 var Hourleft = 23 - NowHour; var Minuteleft = 59 - NowMinute; var Secondleft = 59 - NowSecond; var Yearleft = 2009 - NowYear; var Monthleft = 12 - NowMonth - 1; var Dateleft = 31 - NowDate; // 处理负数情况,将秒、分钟、小时、日期、月份和年份转换为正数 if (Secondleft < 0) { Secondleft = 60 + Secondleft; Minuteleft--; } if (Minuteleft < 0) { Minuteleft = 60 + Minuteleft; Hourleft--; } if (Hourleft < 0) { Hourleft = 24 + Hourleft; Dateleft--; } if (Dateleft < 0) { Dateleft = 31 + Dateleft; Monthleft--; } if (Monthleft < 0) { Monthleft = 12 + Monthleft; Yearleft--; } // 更新显示 document.form1.left.value = Yearleft + "年" + Monthleft + "月" + Dateleft + "日" + Hourleft + "小时" + Minuteleft + "分钟" + Secondleft + "秒"; // 定时器,每秒更新一次 if (!timerRunning) { timerID = setInterval(showtime, 1000); timerRunning = true; } } // 初始化倒计时 showtime(); } ``` 在这个例子中,`startclock`函数初始化倒计时,`showtime`函数负责计算并更新倒计时显示。`setInterval`函数用于每秒钟调用一次`showtime`,确保倒计时实时更新。当倒计时结束(即所有时间都为0),此代码不会自动触发任何提示,如果需要在倒计时结束后弹出提示窗口,可以在`showtime`函数中添加相应的逻辑。 这个简单的倒计时功能可以作为进一步开发的基础,例如,可以增加对闰年和不同月份天数的处理,或者添加更多的自定义选项,如指定具体日期和时间,以及自定义提示信息等。此外,还可以考虑使用ES6语法和更现代的JavaScript特性进行重构,以提高代码可读性和维护性。
HTML代码:
<form name="form1">
<div align="center" align="center">
<center>离2010年还有:<br>
<input type="textarea" name="left" size="35" style="text-align: center">
</center>
</div>
</form>
<script LANGUAGE="javascript">
startclock()
var timerID = null;
var timerRunning = false;
function showtime() {
Today = new Date();
var NowHour = Today.getHours();
var NowMinute = Today.getMinutes();
var NowMonth = Today.getMonth();
var NowDate = Today.getDate();
var NowYear = Today.getYear();
var NowSecond = Today.getSeconds();
if (NowYear <2000)
NowYear=1900+NowYear;
Today = null;
Hourleft = 23 - NowHour
Minuteleft = 59 - NowMinute
Yearleft = 2009 - NowYear
Monthleft = 12 - NowMonth - 1
Dateleft = 31 - NowDate
if (Secondleft<0)
{
Secondleft=60+Secondleft;
Minuteleft=Minuteleft-1;
}
if (Minuteleft<0)
{
Minuteleft=60+Minuteleft;
Hourleft=Hourleft-1;
}
if (Hourleft<0)
{
Hourleft=24+Hourleft;
Dateleft=Dateleft-1;
}
if (Dateleft<0)
{
Dateleft=31+Dateleft;
Monthleft=Monthleft-1;
}
if (Monthleft<0)
{
Monthleft=12+Monthleft;
Yearleft=Yearleft-1;
}
Temp=Yearleft+'年, '+Monthleft+'月, '+Dateleft+'天, '+Hourleft+'小时, '+Minuteleft+'分, '+Secondleft+'秒'
剩余11页未读,继续阅读
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦