js 实现计数器功能

1.运用 setInterval()定时器计算秒数

<!DOCTYPE html>
<html>
  <head>
    <title>JS实现计数器</title>
    <meta http-equiv="content-type" content="text/html; charset=gbk">
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
    <style type="text/css">
       
    </style>
	  </head>
	<body>
		  <div style='color:red;font-size:50px'><span id='hours'>00</span> :<span id='minutes'>00</span>:<span id='seconds'>00</span></div><input type="text" onkeyup="this.value=this.value.replace(/[^\d]/g,'') " onafterpaste="this.value=this.value.replace(/[^\d]/g,'') " id="hour" /><input type="text" onkeyup="this.value=this.value.replace(/[^\d]/g,'') " onafterpaste="this.value=this.value.replace(/[^\d]/g,'') " id="minute" /><input type="text" onkeyup="this.value=this.value.replace(/[^\d]/g,'') " onafterpaste="this.value=this.value.replace(/[^\d]/g,'') " id="second" />
	   <button onclick='start()' id='startt'>开始</button>
	   <button onclick="suspend()">暂停</button>
	   <script type="text/javascript">
		function timer() {
		t=setInterval(() => {
			
			var secondtime=$("#seconds").text()//秒
			var minutetime=$("#minutes").text()//分
			var hourtime=$("#hours").text()//时
			
			if(secondtime.substring(1,0)==0&&secondtime.substring(2,1)>0){
				var secondtimes=secondtime.substring(2,1)
				$("#seconds").text('0'+(secondtimes-1))
			}else if(secondtime.substring(1,0)==0&&secondtime.substring(2,1)==0){
				
				if(minutetime.substring(1,0)!=0||minutetime.substring(2,1)!=0||hourtime.substring(1,0)!=0||hourtime.substring(2,1)!=0){
					$("#seconds").text(59)
					if(minutetime.substring(1,0)==0&&minutetime.substring(2,1)>0){
						var minutetimes=minutetime.substring(2,1)
						$("#minutes").text('0'+(minutetimes-1))
						console.log(minutetime)
					}else if(minutetime.substring(1,0)==0&&minutetime.substring(2,1)==0){
						console.log(hourtime)
						if(hourtime.substring(1,0)!=0||hourtime.substring(2,1)!=0){
							$("#minutes").text(59)
							if(hourtime.substring(1,0)==0&&hourtime.substring(2,1)>0){
								var hourtimes=hourtime.substring(2,1)
								$("#hours").text('0'+(hourtimes-1))
							}else if(hourtime.substring(1,0)==0&&hourtime.substring(2,1)==0){
							
								
							}else if(hourtime.substring(1,0)!=0&&hourtime>10){
								$("#hours").text($("#hours").text()-1)
							}else{
								$("#hours").text('0'+9)
							}
						}else{
							console.log(minutetime)
							$("#minutes").text('0'+0)
						}
						console.log(minutetime)
					}else if(minutetime.substring(1,0)!=0&&minutetime>10){
						$("#minutes").text($("#minutes").text()-1)
					}else{
						$("#minutes").text('0'+9)
						console.log(minutetime)
					}
				}else{
					$("#seconds").text('0'+0)
				}
				
			}else if(secondtime.substring(1,0)!=0&&secondtime>10){
				$("#seconds").text($("#seconds").text()-1)
			}else{
				$("#seconds").text('0'+9)
			}
		}, 1000)}
	       function start(){
			   if($("#second").val()==''){
			   	$("#second").val(0)
			   }
			   if($("#minute").val()==''){
			   	$("#minute").val(0)
			   }
			   if($("#hour").val()==''){
			   	$("#hour").val(0)
			   }
			   if($("#second").val()>60){
			   	alert('秒不能大于60')
				return
			   }
			   if($("#minute").val()>60){
			   	alert('分不能大于60')
			   				return
			   }
			   if($("#hour").val()>24){
			   	alert('时不能大于24')
			   				return
			   }
			    $("#startt").attr("disabled",true);//开始按钮禁用
			   //时-获取输入框的值   小于10,在前面加0
			   if($('#hour').val().length<2){
				    $("#hours").text('0'+$('#hour').val());
			   }else{
				   $("#hours").text($('#hour').val());
			   }
			   //分-获取输入框的值   小于10,在前面加0
			   if($('#minute').val().length<2){
			   		 $("#minutes").text('0'+$('#minute').val());
			   }else{
			   		$("#minutes").text($('#minute').val());
			   }
			   //分-获取输入框的值   小于10,在前面加0
			   if($('#second').val().length<2){
			   		 $("#seconds").text('0'+$('#second').val());
			   }else{
			   		$("#seconds").text($('#second').val());
			   }
				timer()
	       }
	       //暂停
	       function suspend(){
	       	clearInterval(t)//关闭定时器
			 $("#startt").attr("disabled",false);//开始按钮禁用取消
	       }           
	   </script>
	</body>
</html>

视图
问题:没有监听计数到00:00:00时,计数器关闭

很久没用原生js写过东西了,代码有点乱,有不足的地方希望指出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值