js实现有趣的倒计时效果


Posted in Javascript onJanuary 19, 2021

js有趣的倒计时小案例,供大家参考,具体内容如下

js实现有趣的倒计时效果

代码:

<!DOCTYPE html>
<html lang="en">
 
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }
    
    .wrap {
      overflow: hidden;
      width: 500px;
      height: 500px;
      background-color: #eeeeee;
      margin: 0 auto;
    }
    
    h2 {
      margin-top: 20px;
      text-align: center;
      color: #fff;
    }
    
    input {
      width: 70px;
    }
    
    .ipt {
      text-align: center;
      margin-top: 50px;
    }
    
    .run {
      width: 100px;
      height: 100px;
      background-color: #000;
      text-align: center;
      line-height: 100px;
      color: #fff;
      font-size: 30px;
      border-radius: 50%;
      margin: 30px auto 0;
    }
    
    .juli {
      text-align: center;
      margin-top: 30px;
    }
    
    .sytime {
      text-align: center;
      margin-top: 60px;
      font-size: 25px;
      color: #fff;
    }
    
    .sytime span {
      font-size: 30px;
      color: red;
    }
    
    .juli span {
      font-size: 18px;
      color: red;
    }
  </style>
</head>
 
<body>
  <div class="wrap">
    <h2>倒计时</h2>
    <!-- 表单 -->
    <div class="ipt">
      请输入: <input type="text">年<input type="text">月<input type="text">日
    </div>
    <!-- 开始按钮 -->
    <div class="run">开始</div>
    <!-- 距离时间 -->
    <p class="juli">现在距离-<span class="julitime">0000</span>-还剩:</p>
    <!-- 剩余时间 -->
    <div class="sytime">
      <span>00</span>天
      <span>00</span>小时
      <span>00</span>分
      <span>00</span>秒
    </div>
  </div>
  <script>
    // 获取元素
    // 表单
    var ipt = document.getElementsByTagName('input');
    // 按钮
    var btn = document.getElementsByClassName('run')[0];
    // 距离年份
    var julitime = document.getElementsByClassName('julitime')[0];
    // 倒计时
    var sytime = document.getElementsByClassName('sytime')[0];
    var time = sytime.getElementsByTagName('span');
    console.log(ipt, btn, julitime, time);
 
    var timerId = null;
    // 点击事件
 
    btn.onclick = function() {
      if (ipt[1].value > 12 || ipt[2].value > 30) {
        alert('月份要小于12且日要小于30');
        return;
      } else if (ipt[0].value.trim() == '' || ipt[1].value.trim() == '' || ipt[2].value.trim() == '') {
        alert('内容不能为空');
        return;
      }
      timerId = setInterval(countTime, 1000);
 
    }
 
 
 
    function countTime() {
      // 获取输入年份
      var ipty = ipt[0].value;
      // 获取输入月份
      var iptm = ipt[1].value;
      // 获取输入日份
      var iptd = ipt[2].value;
      // console.log(ipty, iptm, iptd);
      var str = ipty + '-' + iptm + '-' + iptd;
      // console.log(str);
      // 赋值给距离时间
      julitime.innerHTML = str;
      // 当前距离1970,1,1毫秒数
      var nowDate = +new Date();
      // 输入时间距离1970,1,1毫秒数
      var inputFr = +new Date(ipty + '-' + iptm + '-' + iptd)
        // 未来减去现在 秒数
      var times = (inputFr - nowDate) / 1000;
      var d = parseInt(times / 60 / 60 / 24) //天
      d = d < 10 ? '0' + d : d;
      var h = parseInt(times / 60 / 60 % 24) //时
      h = h < 10 ? '0' + h : h;
 
      var m = parseInt(times / 60 % 60); //分
      m = m < 10 ? '0' + m : m;
 
      var s = parseInt(times % 60); //秒
      s = s < 10 ? '0' + s : s;
 
      // console.log(d, h, m, s);
      time[0].innerHTML = d;
      time[1].innerHTML = h;
      time[2].innerHTML = m;
      time[3].innerHTML = s;
    }
  </script>
</body>
 
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
alert和confirm功能介绍
May 21 Javascript
input标签内容改变的触发事件介绍
Jun 18 Javascript
基于javascript如何传递特殊字符
Nov 30 Javascript
微信JSAPI支付操作需要注意的细节
Jan 10 Javascript
jQuery简单实现MD5加密的方法
Mar 03 Javascript
Js判断H5上下滑动方向及滑动到顶部和底部判断的示例代码
Nov 15 Javascript
angular6的table组件开发的实现示例
Dec 26 Javascript
layer提示框添加多个按钮选择的实例
Sep 12 Javascript
vue 解决文本框被键盘遮住的问题
Nov 06 Javascript
highcharts.js数据绑定方式代码实例
Nov 13 Javascript
js实现跳一跳小游戏
Jul 31 Javascript
js实现随机点名功能
Dec 23 Javascript
微信小程序之高德地图多点路线规划过程示例详解
Jan 18 #Javascript
从源码角度来回答keep-alive组件的缓存原理
Jan 18 #Javascript
在JavaScript中查找字符串中最长单词的三种方法(推荐)
Jan 18 #Javascript
vue-resource 拦截器interceptors使用详解
Jan 18 #Vue.js
js数组的基本使用总结
Jan 18 #Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
Jan 18 #Javascript
js加减乘除精确运算方法实例代码
Jan 17 #Javascript
You might like
phpmyadmin MySQL 加密配置方法
2009/07/05 PHP
深入php list()函数的详解
2013/06/05 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
JQuery 常用方法和事件详细介绍
2013/04/18 Javascript
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
2013/08/28 Javascript
JavaScript设计模式之外观模式实例
2014/10/10 Javascript
使用JS+plupload直接批量上传图片到又拍云
2014/12/01 Javascript
JavaScript保存并运算页面中数字类型变量的写法
2015/07/06 Javascript
使用jQuery制作浮动工具栏的实例分享
2016/05/13 Javascript
详解javascript中对数据格式化的思考
2017/01/23 Javascript
element el-input directive数字进行控制
2018/10/11 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
vue多页面项目中路由使用history模式的方法
2019/09/23 Javascript
js实现内置计时器
2019/12/16 Javascript
基于JavaScript实现留言板功能
2020/03/16 Javascript
[01:02:55]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
把大数据数字口语化(python与js)两种实现
2013/02/21 Python
Python中的闭包实例详解
2014/08/29 Python
使用python的pexpect模块,实现远程免密登录的示例
2019/02/14 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
Python中url标签使用知识点总结
2020/01/16 Python
python os模块在系统管理中的应用
2020/06/22 Python
通过canvas转换颜色为RGBA格式及性能问题的解决
2019/11/22 HTML / CSS
div或img图片高度随宽度自适应的方法
2020/02/06 HTML / CSS
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
英国高档时尚男装购物网站:MR PORTER
2016/08/09 全球购物
史泰博(Staples)中国官方网站:办公用品一站式采购
2016/09/05 全球购物
美国领先的商务贺卡出版商:The Gallery Collection
2018/02/13 全球购物
台湾母婴用品限时团购:妈咪爱
2018/08/03 全球购物
经济信息系毕业生自荐信范文
2014/03/15 职场文书
2014年建筑工作总结
2014/11/26 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
2016春节放假通知范文
2015/08/18 职场文书
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python