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 相关文章推荐
js查找父节点的简单方法
Jun 28 Javascript
Js-$.extend扩展方法使方法参数更灵活
Jan 15 Javascript
jquery实现文字由下到上循环滚动的实例代码
Aug 09 Javascript
JSON无限折叠菜单编写实例
Dec 16 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
Mar 19 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
Aug 31 Javascript
HTML5 js实现拖拉上传文件功能
Nov 20 Javascript
underscore之Collections_动力节点Java学院整理
Jul 10 Javascript
关于前后端json数据的发送与接收详解
Jul 30 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
Oct 09 Javascript
javascript设计模式之迭代器模式
Jan 30 Javascript
VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)
Apr 03 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
配置最新的PHP加MYSQL服务器
2006/10/09 PHP
探讨:parse url解析URL,返回其组成部分
2013/06/14 PHP
php实现的IMEI限制的短信验证码发送类
2015/05/05 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
js读取cookie方法总结
2014/10/31 Javascript
js获取元素外链样式的方法
2015/01/27 Javascript
论JavaScript模块化编程
2016/03/07 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
2016/05/20 Javascript
JS重载实现方法分析
2016/12/16 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
2017/01/04 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
layui导航栏实现代码
2017/05/19 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
zTree获取当前节点的下一级子节点数实例
2017/09/05 Javascript
JavaScript 有用的代码片段和 trick
2018/02/22 Javascript
js实现蒙版效果
2020/01/11 Javascript
js 计算月/周的第一天和最后一天代码
2020/02/01 Javascript
[02:33]DOTA2英雄基础教程 司夜刺客
2013/12/04 DOTA
pymongo实现多结果进行多列排序的方法
2015/05/16 Python
浅谈python中截取字符函数strip,lstrip,rstrip
2015/07/17 Python
Python3.4编程实现简单抓取爬虫功能示例
2017/09/14 Python
python 实现返回一个列表中出现次数最多的元素方法
2019/06/11 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
Python的形参和实参使用方式
2019/12/24 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
python 检测nginx服务邮件报警的脚本
2020/12/31 Python
联想英国官网:Lenovo英国
2019/07/17 全球购物
Nike墨西哥官网:Nike MX
2020/08/30 全球购物
村庄环境整治方案
2014/05/15 职场文书
奥运会口号
2014/06/13 职场文书
教师群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
教师见习总结范文
2015/06/23 职场文书
大学生村官工作心得体会
2016/01/23 职场文书
一文带你探究MySQL中的NULL
2021/11/11 MySQL