首页 > 其他分享 >js秒表计时器实例

js秒表计时器实例

时间:2022-09-29 17:57:10浏览次数:62  
标签:hour min timer js 计时器 str var sec 秒表

  计时器, 在生活当中也是用得频繁的功能, 比如锻炼身体, 跑步比赛等等相关的活动. 我们用Javascript来完成一个秒表计时器.计时器, 主要就是对时间的一个逻辑处理, 比如60秒等于1分钟, 60分钟等于一个小时, 我们这里只做到小时的处理. 就这么一个简单的逻辑, 然后动态的显示在一个Input里面.

  界面代码:

<label>计时:</label>

<input type="text" name="" id="timer"/>

<button onclick="pause(this)" id="pause" state="on">暂停</button>

<button onclick="restart()">重新开始</button>

  给标签元素一个ID是为了获取其中的标签, 然后加入了两个点击事件, 计数器的暂停, 和重新开始事件.

  首先我们来完成开始计时的处理, 开始计时主要还是是用了setInterval的方法, 其中每隔1秒执行一次方法, 这样我们就可以对时间做处理, 就像开头所说60秒等于1分钟..., 所以这里就需要用判断来处理, 最后就将其中的得到的秒,分,时显示到输入框里.

var ele_timer = document.getElementById("timer");

var n_sec = 0; //秒

var n_min = 0; //分

var n_hour = 0; //时

//60秒 === 1分

//60分 === 1小时

function timer() {

return setInterval(function () {

var str_sec = n_sec;

var str_min = n_min;

var str_hour = n_hour;

if ( n_sec < 10) {

str_sec = "0" + n_sec;

}

if ( n_min < 10 ) {

str_min = "0" + n_min;

}

if ( n_hour < 10 ) {

str_hour = "0" + n_hour;

}

var time = str_hour + ":" + str_min + ":" + str_sec;

ele_timer.value = time;

n_sec++;

if (n_sec > 59){

n_sec = 0;

n_min++;

}

if (n_min > 59) {

n_sec = 0;

n_hour++;

}

}, 1000);

}

var n_timer = timer();

  我们用timer方法包装setInterval方法是为了,后面暂停和重新开始做处理.

  用户点击了暂停, 计时器就停止计时, 用户继续点击这个按钮, 计时器继续计时. 所以这里有一个状态需要控制,这个状态我们给这个按钮一个属性.

//暂停和继续

function pause(self) {

var state = self.getAttribute("state");

if (state === "on") {

clearInterval(n_timer);

self.textContent = "继续";

self.setAttribute("state", "off");

} else {

n_timer = timer();

self.textContent = "暂停";

self.setAttribute("state", "on");

}

}

  最后我们来看一下重新开始, 重新开始事件就更加简单了. 将计数器清0, 然后改变暂停按钮初始状态.

function restart() {

clearInterval(n_timer);

n_sec = 0;

n_min = 0;

n_hour = 0;

n_timer = timer();

var ele_pause = document.getElementById("pause");

ele_pause.textContent = "暂停";

ele_pause.setAttribute("state", "on");

}

  这样就完成了计时的功能.

标签:hour,min,timer,js,计时器,str,var,sec,秒表
From: https://www.cnblogs.com/oymtt/p/16742450.html

相关文章

  • video.js问题总结
    video.js问题总结在vue项目中采用video.js作为视频播放组件。出现以下问题:无法播放(点击无效)如下代码,UI正常显示,点击播放按钮无法播放。<videoref="video"src="xxxxxx......
  • 返回Json对象不忽略null值SerializerFeature.WriteMapNullValue)
    Fastjson的SerializerFeature序列化属性QuoteFieldNames———-输出key时是否使用双引号,默认为trueWriteMapNullValue——–是否输出值为null的字段,默认为falseWriteN......
  • js 创建数组 创建对象 删除数组指定对象
    varmaterielArr=[];//创建数组 varmateriel={};//创建对象 //添加到数组materiel.cInvCode=cInvCode;materiel.quantity=quantity;materiel.orderTyp......
  • vue项目通过xlsx-js-style导出数据为EXCEL
    排除工具xlsx(sheet.js):缺点:社区版无法自定义格式,需要购买pro版本xlsx-style:缺点:代码多年未更新,存在bug,需要改动node_modules包 选用工具安装xlsx-js-stylenpmi......
  • JS 操作符
    JS中的操作符与其他语言大体上是相似的,这里总结一些需要注意的地方.一元操作符一元加(+)在数值前面放置​​+​​​对数值没有任何影响,对非数值使用​​+​​​,具有​​Num......
  • JS Element.scrollIntoView() 滚动元素的父容器
    Element接口的scrollIntoView()方法会滚动元素的父容器,使被调用scrollIntoView()的元素对用户可见。文档语法element.scrollIntoView();//等同于element.scrollIntoView(......
  • JS 正则表达式
    普通字符普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。字符描述[ABC]匹配 [...] 中......
  • 19.JS的标签查找
    1.getElementById(通过ID查找)2.getElementsByClassName(通过类名查找)3.getElementsByTagName(通过标签名查找)4.getElementsByName(通过Name属性查找)例:document.get......
  • debian/ubuntu下安装nodejs npm
    wgethttps://nodejs.org/dist/v16.17.1/node-v16.17.1-linux-x64.tar.xz nodejs官网下载地址,目前最新版,以后有更新就换新的地址,wget下来,解压tar-xvfnode-v16.17.1-li......
  • 22.实例:利用JS点击百度翻译
    Dimtemp,hWeb,sRet,待翻译的文字//变量赋值待翻译的文字="早上好"//绑定浏览器hWeb=WebBrowser.BindBrowser("chrome",10000,{"bContinueOnError":false,"......