怎么用js做秒表后还能每次暂停自动记录时间(就在同一个网页上)

weixin_40837211 2017-11-27 11:40:29
新人刚学,想用setTimeout() 和setInterval()做最简单的秒表:用button开始,中途多次记录和结束。谢谢大神!
...全文
273 5 点赞 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
文盲老顾 2017-11-28
引用 4 楼 weixin_40837211 的回复:
谢谢大神们,我还不会正则表达式。。。想看秒表怎么做的,就最简单的能跑,暂停了能留下数字的那种请不要嫌弃还是小白的我
正则部分可以忽略,3楼的代码你直接引用一个jq就可以运行了 例如在head中加上<script type='text/javascript' src='https://shared.ydstatic.com/js/jquery/jquery-1.8.2.min.js'></script>
  • 打赏
  • 举报
回复
weixin_40837211 2017-11-28
谢谢大神们,我还不会正则表达式。。。想看秒表怎么做的,就最简单的能跑,暂停了能留下数字的那种请不要嫌弃还是小白的我
  • 打赏
  • 举报
回复
当作看不见 2017-11-27
好了知道你想做秒表了,那你问题呢??
  • 打赏
  • 举报
回复
文盲老顾 2017-11-27
一,多次记录和结束,那么你的功能就需要有开始/暂停/继续,停止/清除 二,需要确定秒表记录的最小单位,比如0.01秒,然后以最小单位作为定时器的探测时间间隔
	<div>Timer:<span id="timer" stat="off">0.00</span></div>
	<button id="b1">开始</button>
	<button id="b2">暂停</button>
	<button id="b3">记忆</button>
	<textarea id='rec' style="display:block;width:100%;height:300px;"></textarea>
	<script>
		function addSec(){
			if ($('#timer').attr('stat')=='on')
			{
				// 为了避免浮点计算造成的问题,这里使用正则强制转换成整型计算,然后再用正则生成结果
				var n = parseInt($('#timer').text().replace(/\./g,''))+1;
				var t = ('000'+n).replace(/(\d{2})$/g,'.$1').replace(/^0+(?=\.)/g,'0').replace(/^0+(?=\d)/g,'')
				$('#timer').text(t);
			}else{
				clearInterval(window.timer1);
			}
		}
		function start(){
			window.timer1 = setInterval(function(){addSec()},10);
		}
		$(document).ready(function(){
			$('#b1').click(function(){
				if ($('#timer').attr('stat')=='off')
				{
					$('#timer').attr('stat','on');
					start();
					$(this).html('停止')
				}else{
					$('#timer').attr('stat','off');
					clearInterval(window.timer1);
					$('#timer').text('0.00');
					$(this).html('开始')
					$('#rec').val('');
				}
			});
			$('#b2').click(function(){
				if ($('#timer').attr('stat')=='off')
				{
					$('#timer').attr('stat','on');
					start();
					$(this).html('暂停')
				}else{
					$('#timer').attr('stat','off');
					clearInterval(window.timer1);
					$(this).html('继续')
				}
			});
			$('#b3').click(function(){
				$('#rec').val($('#rec').val()+'\n'+$('#timer').text())
			});
		});
	</script>
  • 打赏
  • 举报
回复
前端-珊珊 2017-11-27
你是想实现倒计时吗?是的话你可以用setTimeout;

	var m=60;
	var one = 0;
	function fun(){
	 	var val = document.getElementById("get_identifying");
	 	val.setAttribute("disabled", true); 
		val.value="重新发送(" + m + ")"; 
	 	m--;
	 	if(m<0){
	 		val.removeAttribute("disabled");    
			val.value="获取验证码"; 
			m = 60; 
			one++;
	 		clearTimeout("fun()");
	 	}else{
	 		setTimeout("fun()",1000);
	 	}
	}
这个是倒计时60秒的。one就是次数的累加
  • 打赏
  • 举报
回复
相关推荐
发帖
JavaScript
加入

8.5w+

社区成员

Web 开发 JavaScript
申请成为版主
帖子事件
创建了帖子
2017-11-27 11:40
社区公告
暂无公告