<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <title></title> <style> * { margin: 0; padding: 0; } html, body { height: 100%; 100%; background-color: black; } #time { color: white; font-size: 80px; padding-top: 35%; padding-left: 4%; height: 15%; 100%; } #butWrap { height: 10%; overflow: hidden; padding: 20px; } #butWrap input { border-radius: 40px; font-size: 20px; 80px; height: 80px; border: 0; outline: none; } #leftBtn { background-color: rgb(21, 21, 21); float: left; color: rgb(132, 132, 132); } #rightBtn { background-color: rgb(12, 56, 30); float: right; color: rgb(0, 196, 92); } #timeMain { height: 50%; 100%; overflow-y: scroll; } #timeMain div { color: white; font-size: 20px; border-top: 1px solid darkgray; border-bottom: 1px solid darkgray; padding: 10px; overflow: hidden; } #timeMain div>span:first-child { float: left; } #timeMain div>span:last-child { float: right; } .stop { background-color: rgb(66, 18, 15) !important; color: rgb(196, 0, 3) !important; } </style> </head> <body> <div id="time">00:00.00</div> <div id="butWrap"> <input type="button" value="计次" id="leftBtn" /> <input type="button" value="启动" id="rightBtn" /> </div> <div id="timeMain"></div> <script> var timeDiv = document.getElementById("time"); // 最大数字显示标签 var rightBtn = document.getElementById("rightBtn"); var leftBtn = document.getElementById("leftBtn"); var timeMain = document.getElementById("timeMain"); // 计次的部分 var nowTime = 0; // 当前毫秒数 var nowSeconds = 0; // 当前秒数 var nowMinutes = 0; // 当前分钟数 var t; // 保存计时器 leftBtn.onclick = function(){ if(this.value == "记次"){ timeNum(); } else { resetTime();//复位 } } rightBtn.onclick = function() { if(this.value == "启动") { start(); this.className = "stop"; this.value = "停止"; leftBtn.value = "记次" } else { stop(); this.className = ""; this.value = "启动"; leftBtn.value = "复位" } } // 1. 启动事件 function start() { // (1) 数字变化 t = setInterval(function() { nowTime++; changeTime(); }, 10); if(timeMain.innerHTML == "") { //点击启动的时候只会走一次 timeNum(); } } // 2. 停止事件 function stop() { clearInterval(t); } function changeTime() { if(nowTime == 100) { nowTime = 0; nowSeconds++; } if(nowSeconds == 60) { nowSeconds = 0; nowMinutes++; } // 3. 处理时间格式 checkTimeStyle(); } function checkTimeStyle() { var resultStr = ""; if(nowMinutes < 10) { resultStr = "0" + nowMinutes + ":"; } else { resultStr = nowMinutes + ":"; } if(nowSeconds < 10) { resultStr += "0" + nowSeconds + "."; } else { resultStr += nowSeconds + "."; } if(nowTime < 10) { resultStr += "0" + nowTime; } else { resultStr += nowTime; } timeDiv.innerHTML = resultStr; } // 4. 显示底部计次 function timeNum() { var myD = document.createElement("div"); var lSpan = document.createElement("span"); var rSpan = document.createElement("span"); myD.appendChild(lSpan); myD.appendChild(rSpan); timeMain.appendChild(myD); lSpan.innerHTML = "记次"; rSpan.innerHTML = timeDiv.innerHTML; } function resetTime(){ timeDiv.innerHTML = "00:00.00"; nowTime = 0; nowSeconds = 0; nowMinutes = 0; timeMain.innerHTML = "";//干掉记次div里所有标签 } </script> </body> </html>