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

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

时间:2024-09-12 18:46:21浏览次数:11  
标签:function 25 最简 手把手 50% timer getElementById time document

一、解构

如图所示,手机浏览器的效果。代码就是简单的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>

标签:function,25,最简,手把手,50%,timer,getElementById,time,document
From: https://www.cnblogs.com/hele-two/p/18288131

相关文章

  • 最高奖励25万?!IT人拥有软考证书可以领取哪些补贴?
       软考证书在哪些地区可以领取补贴,领取多少补贴,这是很多同学关心的问题。以下汇总了部分地区的补贴,同学们可以看看。01 广州黄埔区:1、在黄埔区重点产业单位工作的专业技术人才,对在本区重点产业单位工作的专业技术人才,通过职称评审新取得副高级职称的,一次性给予4000元培养资......
  • 2024.08.25拼多多
    1.树中删边多多有一颗n个节点的树,树中每一条边都有一个权值。多多还有一个长度为n的正整数序列:删除树中若干条边之后(或者不删),就会变成一个有x个连通块的图,此时的得分为:剩余边权和+((两个可以互相到达的节点属于同一个连通块,注意一个孤点也是一个连通块)多多可以删除图中......
  • 2576. 求出最多标记下标
    给你一个下标从0开始的整数数组nums。一开始,所有下标都没有被标记。你可以执行以下操作任意次:选择两个互不相同且未标记的下标i和j,满足2*nums[i]<=nums[j],标记下标i和j。请你执行上述操作任意次,返回nums中最多可以标记的下标数目。示例1:输入:nums=[3......
  • 2552.统计上升四元组
    题目描述:给你一个长度为n下标从0开始的整数数组nums,它包含1到n的所有数字,请你返回上升四元组的数目。如果一个四元组(i,j,k,l)满足以下条件,我们称它是上升的:0<=i<j<k<l<n且nums[i]<nums[k]<nums[j]<nums[l]。示例1:输入:nums=[1,3,2,4,5]......
  • 最高奖励25万?!IT人拥有软考证书可以领取哪些补贴?
       软考证书在哪些地区可以领取补贴,领取多少补贴,这是很多同学关心的问题。以下汇总了部分地区的补贴,同学们可以看看。01  广州黄埔区:1、在黄埔区重点产业单位工作的专业技术人才,对在本区重点产业单位工作的专业技术人才,通过职称评审新取得副高级职称的,一次性给予4000元培养......
  • 【每日一题】LeetCode 2576.求出最多标记下标(贪心、数组、双指针、二分查找、排序)
    【每日一题】LeetCode2576.求出最多标记下标(贪心、数组、双指针、二分查找、排序)题目描述给定一个整数数组nums,数组下标从0开始。你需要执行以下操作,直到无法再执行为止:选择两个互不相同且未标记的下标i和j。满足条件2*nums[i]<=nums[j],则标记下标i和j。......
  • 渗透工具包_移动端内网渗透思路_手把手教网安自学路线_安卓渗透思路
    ......
  • GEOG 2500 Web Browsing
    GEOG2500–Fall2024Lab1:WebBrowsing&IntroductiontoESRIWebTraining  Objectives:•   Becomefamiliarwiththewwwto learnaboutGIS andto access Geographic Data•   Locatewebsitesthatcan be useful inyourGISworld• ......
  • 20240909_111725 c语言 关于进位制
    各种进制注意:在较老的版本如VisualStudio2010中,C语言不支持直接使用0b开头来表示二进制数。对于八进制数,如果写成intnum=12;这是十进制的12,如果要明确表示八进制的12,可以写成intnum=012;测一测注,包含了语法错误的情况......
  • uniapp微信小程序的老年防诈科普及交流平台设计和实现 f254d可视化分析系统
    目录技术介绍具体实现截图微信开发者工具HBuilderXuniapp系统设计java类核心代码部分展示登录的业务流程的顺序是:可行性论证详细视频演示技术可行性系统测试系统安全性数据完整性实现思路系统实现源码获取技术介绍如今微信小程序有以下发展优势(1)无须下载,无须注......