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 相关文章推荐
什么是json和jsonp,jQuery json实例详详细说明
Dec 11 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
Mar 03 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
May 24 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
Aug 18 Javascript
深入浅析JS Function()构造函数
Aug 22 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
Aug 29 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
Sep 05 Javascript
JavaScript模板引擎Template.js使用详解
Dec 15 Javascript
jQuery zTree树插件动态加载实例代码
May 11 jQuery
webpack vue项目开发环境局域网访问方法
Mar 20 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
Jul 23 Javascript
浅谈js中的attributes和Attribute的用法与区别
Jul 16 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 Google的translate API代码
2008/12/10 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
PHP7新增函数
2021/03/09 PHP
深入理解Javascript闭包 新手版
2010/12/28 Javascript
js arguments,jcallee caller用法总结
2013/11/30 Javascript
Window.Open如何在同一个标签页打开
2014/06/20 Javascript
js实现正方形颜色从下往上升的效果
2014/08/04 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
jquery不常用方法汇总
2015/07/26 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
浅析Jquery操作select
2016/12/13 Javascript
Vue项目中跨域问题解决方案
2018/06/05 Javascript
浅谈vue引用静态资源需要注意的事项
2018/09/28 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
2020/04/13 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
2020/07/19 Javascript
Openlayers实现测量功能
2020/09/25 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
利用python求相邻数的方法示例
2017/08/18 Python
python中requests爬去网页内容出现乱码问题解决方法介绍
2017/10/25 Python
Python enumerate索引迭代代码解析
2018/01/19 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
python通过opencv实现图片裁剪原理解析
2020/01/19 Python
Lands’ End官网:经典的美国生活方式品牌
2016/08/14 全球购物
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
婴儿地球:Baby Earth
2018/12/25 全球购物
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
AssertionError 跟一下那个类是 “is – a”的关系
2012/02/21 面试题
给幼儿园老师的表扬信
2014/01/19 职场文书
2015入党个人自传范文
2015/06/26 职场文书
售房协议书范本
2015/08/11 职场文书
2019中小学生安全过暑期倡议书
2019/06/24 职场文书
研究生学习计划书应该怎么写?
2019/09/10 职场文书
Web前端:CSS最强总结 附详细代码
2021/03/31 HTML / CSS
css 中多种边框的实现小窍门
2021/04/07 HTML / CSS
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记