手把手教你制作最简网页版倒计时程序(核心代码仅25行)

一、解构

如图所示,手机浏览器的效果。代码就是简单的html语言加上一个JavaScript脚本,界面主要分3部分,功能实现主要分3个函数。

(一)显示样式

在头里定义了居中显示的CSS样式,将来在浏览器中居中显示倒计时X分XX秒。

<style type="text/css">
    .center {
        position:absolute;
        top:50%;
        left:50%;
        transform:translate(-50%,-50%);
    }
</style>

另外网页背景主体是蓝色。
<body bgcolor="blue"/>

(二)输入框和按钮

<input type="text" value="" id="time">
<input type="button" onclick="go()" value="开始">
<input type="button" onclick="stop()" value="停止">

(三)倒计时显示

倒计时timer显示区域,用到了居中显示的CSS样式,同时设置了前景色为白色,字居中,字体大小180px:
<div id="timer" class=center style="color:#fff; text-align:center; font-size:180px;"/>

(四)三个函数

go函数:

//解析时间
function go() {
	clearInterval(timer);//清除定时器
	document.getElementById("timer").style.color="#fff";//设置timer显示区域前景色为白色
	time = document.getElementById("time").value;//获取起始时间
	resetTime(time);//用time复位倒计时
}

reset函数:

function resetTime(time) {
    var t = parseInt(time) * 60; //将分钟换算成秒
    var m, s; //分钟和秒
    function countDown() { //递减函数
        t--; //时间减1
        if (t < 0) { //边界值检测,若t为零,就停止计时
            t = 0;
            stop();
        }
        m = Math.floor(t / 60); //取整分钟
        s = t % 60; //取秒
        s < 10 && (s = '0' + s); //秒值补齐0位
        document.getElementById("timer").innerHTML = m + "分" + s + "秒"; //输出倒计时显示
    } //end of countDown
    timer = setInterval(countDown,1000); //设置计时器,每1000毫秒调用一次countDown递减函数
}  //end of resetTime

stop函数:

function stop() {
 clearInterval(timer); //停止计时
  document.getElementById("timer").style.color="#f00"; //设置timer工区域前景色为RGB颜色红色
}

二、样例

<!--(c)hele 2018倒计时程序,输入分钟数点击开始,内置递减程序,1秒递减1次-->
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
	.center {
	position:absolute;
	top:50%;
	left:50%;
	transform:translate(-50%,-50%);
//	width:1000px;
	}
</style>
</head>
<body bgcolor="blue">
	<input type="text" value="" id="time">
	<input type="button" onclick="go()" value="开始">
	<input type="button" onclick="stop()" value="停止">
	<div id="timer" class=center style="color:#fff; text-align:center; font-size:180px;">
	</div>
	<script type="text/javascript">
	var timer = null;
	//解析时间
	function go() {
	clearInterval(timer);
	document.getElementById("timer").style.color="#fff";
	time = document.getElementById("time").value;
	resetTime(time);
	}
	function stop() {
	clearInterval(timer);
	document.getElementById("timer").style.color="#f00";
	}
	//设置倒计时器参数
	function resetTime(time) {
	var t = parseInt(time) * 60;
	var m, s;
	function countDown() {
	t--;
	if (t < 0) {
	t = 0;
	stop();
	}
	m = Math.floor(t / 60);
	s = t % 60;
	s < 10 && (s = '0' + s);
	document.getElementById("timer").innerHTML = m + "分" + s + "秒";
	} //end of countDown
	timer = setInterval(countDown,1000);
	}	 //end of resetTime
	</script>
</body>
</html>
作者:苦涩的心原文地址:https://www.cnblogs.com/hele-two/p/18288131

%s 个评论

要回复文章请先登录注册