案例:模拟京东秒杀倒计时(完整代码)【前端实现】

目录

实现效果 

案例分析

代码分析

代码实现 (完整)

背景图片引用


实现效果 

案例分析

 1.倒计时是不断变化的 所以需要一个定时器(setInterval

 2.三个盒子通过 innerHTML 进行赋值 放入时分秒

 3.使用Date()对象获取当前时间(时间戳)

 4.传递参数获取活动开始的时间,两次时间的单位都是秒

 5.两个时间相减可得到相距的时间

 6.通过计算得到小时,分钟,秒钟 注意要用到补零

 7.使用setInterval(function(){},1000)函数每1秒调用一次倒计时函数(1000为毫秒)

 8.调用倒计时函数

代码分析

 html部分

<div class="timedown">
    <div class="text1">京东秒杀</div>
    <div class="text2">18:00点场 距结束</div>
    <span class="hour">1</span>
    <span class="minute">2</span>
    <span class="second">3</span>
</div>

css部分(简单布局)

<style>
        .timedown {
            position: relative;
            width: 200px;
            height: 270px;
            background: url(../img/flash.png);
        }

        .text1 {
            text-align: center;
            padding-top: 30px;
            font-size: 35px;
            font-weight: 1000;
            color: white;
        }

        .text2 {
            text-align: center;
            padding-top: 100px;
            font-size: 17px;
            font-weight: 1000;
            color: white;
        }

        span {
            position: relative;
            display: inline-block;
            width: 30px;
            height: 30px;
            background-color: black;
            padding: 5px;
            margin-left: 18px;
            margin-top: 12px;
            color: white;
            text-align: center;
            font-size: 15px;
            line-height: 30px;
        }
    </style>

js部分(重要)

(1)获取元素

    var hour = document.querySelector(".hour")
    var minute = document.querySelector(".minute")
    var second = document.querySelector(".second")
    var inputTime = +new Date("2022-10-7 20:00:00") 

(2)注册事件 处理程序

  •    注意看:这里在设置倒计时函数之前就调用了倒计时函数,目的是避免刷新页面出现延迟的现象(也就是说使页面中不再出现span标签中原本的文字内容“123”)
  • 这里用innerHTML 给时分秒 重新赋值
  countDown(); 

setInterval(countDown, 1000);//这个回调函数如果是调用的情况,不用加()
    function countDown() {
        var nowTime = +new Date(); 
        var times = (inputTime - nowTime) / 1000;
        var h = parseInt(times / 60 / 60 % 24);
        h = h > 10 ? h : h+"0" ;
        hour.innerHTML = h;//给hour重新赋值h
        var m = parseInt(times / 60 % 60);
        m = m > 10 ? m : "0" + m;
        minute.innerHTML = m;
        var s = parseInt(times % 60);
        s = s > 10 ? s : "0" + s;
        second.innerHTML = s;
    }

代码实现 (完整)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>模拟京东秒杀倒计时</title>
    <style>
        .timedown {
            position: relative;
            width: 200px;
            height: 270px;
            background: url(../img/flash.png);
        }

        .text1 {
            text-align: center;
            padding-top: 30px;
            font-size: 35px;
            font-weight: 1000;
            color: white;
        }

        .text2 {
            text-align: center;
            padding-top: 100px;
            font-size: 17px;
            font-weight: 1000;
            color: white;
        }

        span {
            position: relative;
            display: inline-block;
            width: 30px;
            height: 30px;
            background-color: black;
            padding: 5px;
            margin-left: 18px;
            margin-top: 12px;
            color: white;
            text-align: center;
            font-size: 15px;
            line-height: 30px;
        }
    </style>
</head>
<div class="timedown">
    <div class="text1">京东秒杀</div>
    <div class="text2">18:00点场 距结束</div>
    <span class="hour">1</span>
    <span class="minute">2</span>
    <span class="second">3</span>
</div>
<script>
    var hour = document.querySelector(".hour")
    var minute = document.querySelector(".minute")
    var second = document.querySelector(".second")
    var inputTime = +new Date("2022-10-7 20:00:00") 

    countDown();

    setInterval(countDown, 1000);
    function countDown() {
        var nowTime = +new Date(); 
        var times = (inputTime - nowTime) / 1000;
        var h = parseInt(times / 60 / 60 % 24);
        h = h > 10 ? h : h+"0" ;
        hour.innerHTML = h;//给hour重新赋值h
        var m = parseInt(times / 60 % 60);
        m = m > 10 ? m : "0" + m;
        minute.innerHTML = m;
        var s = parseInt(times % 60);
        s = s > 10 ? s : "0" + s;
        second.innerHTML = s;
    }
</script>
<body>
</html>

背景图片引用

猜你喜欢

转载自blog.csdn.net/m0_65085680/article/details/127192463
今日推荐