首页 > 其他分享 >js简单的倒计时器~~⏰

js简单的倒计时器~~⏰

时间:2023-09-14 12:44:04浏览次数:73  
标签:60 getElementById innerHTML js 倒计时 zero 简单 var document

1.效果图

2.html部分

3.逻辑部分

3.1获取当前时间,时间差
       //获取当前时间
        var date = new Date();
        var now = date.getTime();
        //设置截止时间
        var str = "2023/9/14 12:28:34";
        var endDate = new Date(str);
        var end = endDate.getTime();

        //时间差
        var leftTime = end - now;
3.2 d,h,m,s保存倒计时的时间
      //定义变量 d,h,m,s保存倒计时的时间
        var d, h, m, s;
        if (leftTime >= 0) {
            d = Math.floor(leftTime / 1000 / 60 / 60 / 24);
            h = Math.floor(leftTime / 1000 / 60 / 60 % 24);
            m = Math.floor(leftTime / 1000 / 60 % 60);
            s = Math.floor(leftTime / 1000 % 60);
        } else {
            d = 0;
            h = 0;
            m = 0;
            s = 0
        }
3.3 小于0的时候补0
     // 定义 小于0补0 的方法zero
        function zero(num) {
            if (num < 10) {
                return "0" + num
            }
            return num
        }
3.4 赋值给div 渲染
        // 赋值到div中
        document.getElementById("_d").innerHTML = zero(d) + "天";
        document.getElementById("_h").innerHTML = zero(h) + "时";
        document.getElementById("_m").innerHTML = zero(m) + "分";
        document.getElementById("_s").innerHTML = zero(s) + "秒";
3.5 递归的方法调用countTime方法,显示顶替时间
   //递归每秒调用countTime方法,显示动态时间效果
        setTimeout(countTime, 1000);
3.6 完整代码
<html>
<head>
    <meta charset="UTF-8">
    <title>js简单时分秒倒计时</title>
</head>
<style>
    .box {
background: #17deb9;
        width: 350px;
        height: 60px;
        text-align: center;
        border-radius: 30px;
    }
</style>

<body onl oad="countTime()">
<div class="box">
    <!--    <button onclick="countTime()">点击</button>-->
    <br>
    <span id="_d">00</span>
    <span id="_h">00</span>
    <span id="_m">00</span>
    <span id="_s">00</span>
</div>
</body>
<script type="text/javascript">
    function countTime() {
        //获取当前时间
        var date = new Date();
        var now = date.getTime();
        //设置截止时间
        var str = "2023/9/14 12:28:34";
        var endDate = new Date(str);
        var end = endDate.getTime();

        //时间差
        var leftTime = end - now;
        //定义变量 d,h,m,s保存倒计时的时间
        var d, h, m, s;
        if (leftTime >= 0) {
            d = Math.floor(leftTime / 1000 / 60 / 60 / 24);
            h = Math.floor(leftTime / 1000 / 60 / 60 % 24);
            m = Math.floor(leftTime / 1000 / 60 % 60);
            s = Math.floor(leftTime / 1000 % 60);
        } else {
            d = 0;
            h = 0;
            m = 0;
            s = 0
        }
        //将倒计时赋值到div中(普通的写法)--1
        // document.getElementById("_d").innerHTML = d+"天";
        // document.getElementById("_h").innerHTML = h+"时";
        // document.getElementById("_m").innerHTML = m+"分";
        // document.getElementById("_s").innerHTML = s+"秒";
        // -------------------------
        //将倒计时赋值到div中(小于0,补0)--2
        // 定义 小于0补0 的方法zero
        function zero(num) {
            if (num < 10) {
                return "0" + num
            }
            return num
        }
        // 赋值到div中
        document.getElementById("_d").innerHTML = zero(d) + "天";
        document.getElementById("_h").innerHTML = zero(h) + "时";
        document.getElementById("_m").innerHTML = zero(m) + "分";
        document.getElementById("_s").innerHTML = zero(s) + "秒";
        // -------------------------------
        
        //递归每秒调用countTime方法,显示动态时间效果
        setTimeout(countTime, 1000);
        // 倒计时 事件到了 弹出提醒
        let box = document.querySelector('.box') //获取元素
        if (d === 0 && h === 0 && m === 0 && s === 0) {
            box.style.background = 'red';
            // alert('事件到啦~秒杀!!!');
        }
    }
</script>
</html>

标签:60,getElementById,innerHTML,js,倒计时,zero,简单,var,document
From: https://www.cnblogs.com/mahmud/p/17702228.html

相关文章

  • netcore请求json斜杠带空格导致请求报错
    我用netcore发布了一个webapi接口,个别电脑,同样的浏览器(谷歌),swagger调用接口的时候,它的json体会加空格,然后请求就会报错。这是控制器里的方法下图是请求输入: 下图是加了空格的请求内容,如红色框所示,带了空格 下图是报错的内容下图是正常请求的内容,可以返回想要的结果......
  • java/jsp清除jsp缓存
    InJava:HttpServletResponseresponse=(HttpServletResponse)rep;response.setDateHeader("Expires",-1);response.setHeader("Cache_Control","no-cache");response.setHeader("Pragma","no-ca......
  • JSP两种注释方法
    用了这么久的jsp和java,还不是很清楚jsp页面的注释。^-^1.[b]第一种用显式注释:<!--comment-->[/b]forexample:<!--<geh:checkLogon/>-->此种注释还是会让JVM编译、解释和执行。2.[b]第二种用隐式注释:<%--comment--%>[/b]forexample:<%--......
  • How to fix Tailwind CSS colors not work in Next.js All In One
    HowtofixTailwindCSScolorsnotworkinNext.jsAllInOneTailwindCSS&Next.js13errorimporttype{Config}from'tailwindcss'constconfig:Config={content:['./src/pages/**/*.{js,ts,jsx,tsx,mdx}','......
  • 简单DOS命令 快捷键总结
    ALT+F4关闭窗口win+R打开指令外加CMDCTRL+A全选CTRL+C复制CTRL+Z撤销CTRL+Y恢复CTRL+F打开搜索CTRL+h替换CTRL+N打开新窗口CTRL+S保存CTRL+W关闭界面CTRL+P打印CTRL+滚轮自由放大CTRL++放大CTRL+shift+N开文件夹shift+delete删除文件CTRL+shift+esc任务管理器或ctrl+Alt+.win+......
  • JS深入学习笔记 - 第二章.类和对象
    3.类和对象3.1面向对象这里顺带提一句学习JAVA时,老师说的面向对象和面向过程的区别:面向过程:强调做什么事情,具体什么步骤。举个把大象放进冰箱的例子:打开冰箱门把大象放进冰箱关上冰箱门面向对象:强调的是做动作的主体(称之为对象)冰箱:打开操作冰箱:放的操作(放的可以是大象......
  • RBFS简单理解
    论文引用Sharma,DishaandSanjayKumarDubey.“ComparativeStudyofRBFS&ARBFSAlgorithm.”IOSRJournalofComputerEngineering10(2013):105-110.前言论文中的伪代码可能有错误贴一份写的比较清楚点的帖子算法思路在h函数保证一致性的情况下,第一次扩展到n时......
  • js中使用0 “” null undefined {}需要注意 if判断时候都是false,比如判断接收后台数
    js中使用0“”nullundefined{}需要注意if判断时候都是false,比如判断接收后台数据if(data.info){}注意:在js中0为空(false),代表空的还有“”,null,undefined;如果做判断if(!上面的四种值);返回均为false?1234567console.log(!null);//trueconsole.log(!0);//trueconsole.lo......
  • 关于 Angular 应用里 Rxjs filter 操作符内的双重感叹号的用法
    看下列这段出现在AngularComponent内的代码:protecteduserCostCenters$:Observable<CostCenter[]>=this.userCostCenterService.getActiveCostCenters().pipe(filter((costCenters)=>!!costCenters));这段Angular组件代码涉及到Observable和RxJS操作......
  • ansible-playbook简单了解
    1.playbook简介playbook是ansible用于配置,部署,和管理节点的剧本。2.playbook格式playbook由YAML语言编写。3.playbook执行过程1.将以编排好的任务集(ansible单条命令集合)写进playbook2.通过ansible-playbook命令分拆任务集逐条执行ansible命令,按预定规则逐条执行4.playbook......