js秒表效果代码实例

快乐打工仔 分类:实例代码

本章节分享一段代码实例,它实现了秒表效果。

能够点击进行计时,也能够将记录的时间记录下来。

代码实例如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.pipipi.net/" />
<title>犀牛前端部落</title>
<style>
li {
  display: block;
  margin-bottom: 10px;
}
body {
  background: #353535;
}
#yesap {
  width: 450px;
  height: 550px;
  background: #000;
  border: 3px #fff solid;
}
#ekran {
  width: 420px;
  height: 120px;
  background: #838383;
  position: relative;
  top: 12px;
  color: #fff;
  font-size: 55px;
}
#ekran #bir {
  color: #fff;
  font-size: 55px;
  position: absolute;
  right: 95px;
  bottom: -10px;
}
#ekran #ikki {
  color: #fff;
  font-size: 55px;
  position: absolute;
  right: 180px;
  bottom: -10px;
}
#ekran #uq {
  color: #fff;
  font-size: 55px;
  position: absolute;
  right: 260px;
  bottom: -10px;
}
#ekran .qkt1 {
  position: relative;
  left: -22px;
  top: 25px;
}
#ekran .qkt2 {
  position: relative;
  left: 30px;
  top: 25px;
}
#hatir {
  width: 420px;
  height: 310px;
  background: #FAFFE8;
  border-radius: 12px;
  position: relative;
  top: 25px;
}
#hatir #bir {
  color: #000;
  font-size: 35px;
  position: absolute;
  left: 260px;
  margin-top: 20px;
}
#hatir #ikki {
  color: #000;
  font-size: 35px;
  position: absolute;
  left: 180px;
  margin-top: -10px;
}
#hatir #uq {
  color: #000;
  font-size: 35px;
  position: absolute;
  left: 95px;
  margin-top: -10px;
}
#hatir .qkt1 {
  position: relative;
  font-size: 26px;
  left: -43px;
  top: 26px;
}
#hatir .qkt2 {
  position: relative;
  font-size: 26px;
  left: 22px;
  top: 26px;
}
#icon {
  width: 420px;
  height: 70px;
  position: relative;
  top: 10px;
  top: 26px;
}
#icon div {
  float: left;
  margin-left: 38px;
  margin-top: 35px;
  color: #fff;
  line-height: 38px;
}
#icon #icon1 {
  width: 90px;
  height: 40px;
  border-radius: 11px;
  background: rgb(88, 87, 109);
}
#icon #icon2 {
  width: 90px;
  height: 40px;
  border-radius: 11px;
  background: rgb(88, 87, 109);
}
#icon #icon3 {
  width: 90px;
  height: 40px;
  border-radius: 11px;
  background: rgb(88, 87, 109);
}
#del {
  width: 110px;
  height: 45px;
  background: #FF0F0F;
  margin-top: -7px;
  border-radius: 20px;
  margin-left: 3px;
}
#del p {
  color: #fff;
  font-size: 22px;
  line-height: 40px;
}
#del:hover {
  cursor: pointer;
}
#icon1:hover {
  cursor: pointer;
}
#icon2:hover {
  cursor: pointer;
}
#icon3:hover {
  cursor: pointer;
}
#tishi {
  width: 420px;
  height: 310px;
  background: #fff444;
  position: absolute;
  border-radius: 12px;
  filter: alpha(opacity:0);
  opacity: 0;
  z-index: 9;
  display: none;
}
#tishi p {
  font-size: 24px;
  font-weight: bold;
  margin-top: 100px;
  color: #020027;
}
#tishi #btn {
  width: 90px;
  height: 40px;
  background: #000;
  border-radius: 18px;
  margin-top: -40px;
}
#tishi #btn p {
  color: #fff;
  font-size: 20px;
  line-height: 38px;
}
#tishi #btn:hover {
  cursor: pointer;
}
</style>
<script>
function getStyle(obj, name) {
  if (obj.currentStyle) {
    return obj.currentStyle[name];
  } else {
    return getComputedStyle(obj, false)[name];
  }
}
 
function startMove(obj, json, End) {
 
  clearInterval(obj.timer);
  obj.timer = setInterval(function() {
    var bStop = true;
    for (var turi in json) {
      var cur = 0;
 
      if (turi == 'opacity') {
        cur = Math.round(parseFloat(getStyle(obj, turi)) * 100);
      } else {
        cur = parseInt(getStyle(obj, turi));
      }
 
      var speed = (json[turi] - cur) / 7;
      speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
 
      if (cur != json[turi])
        bStop = false;
 
      if (turi == 'opacity') {
        obj.style.filter = 'alpha(opacity:' + (cur + speed) + ')';
        obj.style.opacity = (cur + speed) / 100;
 
      } else {
        obj.style[turi] = cur + speed + 'px';
      }
    }
    if (bStop) {
      clearInterval(obj, timer);
      if (End) {
        End()
      };
    }
  }, 30)
}
window.onload = function() {
  var adiv = document.getElementById('bir');
  var abtn = document.getElementById('icon1');
  var bbtn = document.getElementById('icon3');
  var xbtn = document.getElementById('icon2');
  var arcd = document.getElementById('hatir');
  var rcdx = arcd.getElementsByTagName('li');
  var aekr = document.getElementById('ekran');
  var del = document.getElementById('del');
 
 
  abtn.onclick = function() {
    Timestart();
  }
  bbtn.onclick = function() {
    stop();
  }
  xbtn.onclick = function() {
    var oLi = document.createElement('li');
    var save = aekr.getElementsByTagName('li')[0];
 
    if (rcdx.length == 7) {
      var tshi = document.getElementById('tishi');
      var btn1 = document.getElementById('btn');
      tshi.style.display = 'block';
      startMove(tshi, {
        opacity: 90
      })
      btn1.onclick = function() {
        var tshi = document.getElementById('tishi');
        startMove(tshi, {
          opacity: 0
        }, function() {
          tshi.style.display = 'none';
        })
      }
    } else {
      oLi.innerHTML = save.innerHTML;
      arcd.appendChild(oLi);
    }
  }
  del.onclick = function() {
    arcd.innerHTML = '<div id="tishi"><p>记录已达到最大限制</p><div id="btn"><p>好吧</p></div></div>';
  };
 
};
 
var timer = null;
 
function kox(n) {
  if (n < 10) {
    return '0' + n
  } else {
    return '' + n
  };
};
 
function Timestart() {
  var adiv = document.getElementById('bir');
  var ndiv = document.getElementById('ikki');
  var cdiv = document.getElementById('uq');
  var abtn = document.getElementById('icon1');
  var bbtn = document.getElementById('ekran');
  var fdiv = bbtn.getElementsByTagName('h1')[1];
 
  clearInterval(timer);
  timer = setInterval(function() {
    if (adiv.innerText == 99) {
      adiv.innerText = 0;
      ndiv.innerText++;
      adiv.innerText = kox(adiv.innerText);
      ndiv.innerText = kox(ndiv.innerText);
      if (ndiv.innerText == 60) {
        ndiv.innerText = 0;
        cdiv.innerText++;
        ndiv.innerText = kox(ndiv.innerText);
        cdiv.innerText = kox(cdiv.innerText);
      };
    } else {
      adiv.innerText++;
      adiv.innerText = kox(adiv.innerText);
    };
  }, 10)
 
 
};
 
function stop() {
  clearInterval(timer);
};
</script>
</head>
<body>
  <center>
    <div id="yesap">
      <div id="ekran">
        <li>
          <h1 id="bir">00</h1>
          <b class="qkt1">:</b>
          <h1 id="ikki">00</h1>
          <b class="qkt2">:</b>
          <h1 id="uq">00</h1>
        </li>
      </div>
      <div id="hatir">
        <div id="tishi">
          <p>记录已达到最大限制</p>
          <div id="btn"><p>好吧</p>
        </div>
      </div>
    </div>
      <div id="icon">
        <div id="icon1"><b>开始</b></div>
        <div id="icon2"><b>记录</b></div>
        <div id="icon3"><b>暂停</b></div>
      </div>
    </div>
    <div id="del"><p>清空</p></div>
  </center>
</body>
</html>

js秒表效果代码实例,这样的场景在实际项目中还是用的比较多的,关于js秒表效果代码实例就介绍到这了。

js秒表效果代码实例属于前端实例代码,有关更多实例代码大家可以查看

回复

我来回复
  • 暂无回复内容