杨老师课堂之JavaScript定时器限时抢购秒杀商品案例

简介: 杨老师课堂之JavaScript定时器限时抢购秒杀商品案例

预览效果图:

使用到的知识点:

  定时器 setInterval(函数,毫秒):在指定的毫秒数后调用函数或执行一段代码

  取消定时器 clearInterval:取消由setInterval设置的定时器

  函数(日期函数、parseInt函数)

    parseInt()函数 :可解析一个字符串,并返回一个整数

示例代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
    <!--
        需求:
        电子商务网站中,商家为了促销商品而策划一些活动,刺激消费者进行盲目消费  限时秒杀就是其中一种手段。
     本次我们模拟的商品是 农夫山泉限时秒杀抢购
    -->
        <title>农夫山泉限时秒杀</title>
        <!--CSS代码:-->
        <style type="text/css">
            .box{        /*外围的大盒子样式*/
                width: 702px;/*宽度702像素*/
                height: 378px;/*高度378像素*/
                background: url(../img/flash_sale.png);/*背景图片*/
                margin: 0 auto;/*上下为0  水平居中*/
            }
            .box div{    /*外围的大盒子内部的小盒子样式*/
                width: 50px; /*宽度50像素*/
                height: 50px;/*高度50像素*/
                border: 1px solid darkgray;/*边界线1像素 实线 浅灰色*/
                position: relative; /*使用相对定位*/
                top: 260px;            /*相对定位顶部距离260像素*/
                float: left;        /*使小盒子左浮动*/
                left:305px ;        /*相对定位左侧距离305像素*/
                margin-left: 5px;    /*两个小盒子之间空出5px*/
                color: red;            /*字体颜色为红色*/
                text-align: center;    /*字体居中显示*/
                line-height: 50px;    /*字体行高50像素*/
            }
        </style>
    </head>
    <body>
        <!--外围的大盒子-->
        <div class="box">
            <!--剩余的天数-->
            <div id="d"></div>
            <!--剩余的小时-->
            <div id="h"></div>
            <!--剩余的分钟-->
            <div id="m"></div>
            <!--剩余的秒数-->
            <div id="s"></div>
        </div>
    </body>
</html>
<!--JavaScript代码:-->
<script type="text/javascript">
        //设置秒杀结束时间
    var endTime = new Date("2018-05-18 09:29:00");
    //把年月日时分秒的时间转换成为毫秒数
    endSeconds = endTime.getTime();//结束时间的毫秒数
    //定义变量  天数 小时 分钟  秒数  
    var d = h = m = s =  0;
    //设置定时器  实现一个秒杀效果
    var timer = setInterval(qiang,1000);
    
    function qiang(){
        // 获取当前系统时间
        var nowTime = new Date();
        // 获取当前时间差---nowTime.getTime()现在时间的毫秒数
        var remain = parseInt((endSeconds-nowTime.getTime())/1000);
        //判断秒杀是否过期
        if(remain>0){
            //1.计算剩余天数  (除以60*60*24  取整数  获取剩余天数)
            d = parseInt(remain/86400)
            //2.计算剩余小时(除以60*60 转换成为小时了  与24进行取模   获取剩余小时)
            h = parseInt((remain/3600) % 24);
            //3.计算剩余分钟(除以60  转换成为分钟了  与60进行取模   获取剩余分钟)
            m = parseInt((remain/60) % 60);
            //4.计算剩余秒数(与60进行取模   获取剩余秒数)
            s = parseInt((remain) % 60);
            
            //统一利用两位数 表示 剩余的天、小时、分钟、秒
            d= d < 10 ? '0' + d:d;
            h= h < 10 ? '0' + h:h;
            m= m < 10 ? '0' + m:m;
            s= s < 10 ? '0' + s:s;
            
        }else{
            // 秒杀过期  取消定时器
            clearInterval(timer);
            d = h = m = s = '00' 
        }
        //将剩余的天数、小时、分钟、秒  小时到指定网页中去
        document.getElementById("d").innerHTML = d + '天';
        document.getElementById("h").innerHTML = h + '时';
        document.getElementById("m").innerHTML = m + '分';
        document.getElementById("s").innerHTML = s + '秒';
    }
</script>
 

分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。

目录
相关文章
|
JavaScript 前端开发 索引
40个JS常用使用技巧案例
大家好,我是V哥。在日常开发中,JS是解决页面交互的利器。V哥总结了40个实用的JS小技巧,涵盖数组操作、对象处理、函数使用等,并附带案例代码和解释。从数组去重到异步函数,这些技巧能显著提升开发效率。先赞再看后评论,腰缠万贯财进门。关注威哥爱编程,全栈开发就你行!
371 16
|
JavaScript 前端开发 Java
深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解
Array.find() 是 JavaScript 数组方法中一个非常实用和强大的工具。它不仅提供了简洁的查找操作,还具有性能上的独特优势:返回的引用能够直接影响原数组的数据内容,使得数据更新更加高效。通过各种场景的展示,我们可以看到 Array.find() 在更新、条件查找和嵌套结构查找等场景中的广泛应用。 在实际开发中,掌握 Array.find() 的特性和使用技巧,可以让代码更加简洁高效,特别是在需要直接修改原数据内容的情形。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一
|
监控 JavaScript 前端开发
MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver:原理与实战案例
MutationObserver 是一个非常强大的 API,提供了一种高效、灵活的方式来监听和响应 DOM 变化。它解决了传统 DOM 事件监听器的诸多局限性,通过异步、批量的方式处理 DOM 变化,大大提高了性能和效率。在实际开发中,合理使用 MutationObserver 可以帮助我们更好地控制 DOM 操作,提高代码的健壮性和可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver:原理与实战案例
|
JavaScript
js学习--商品列表商品详情
js学习--商品列表商品详情
178 2
|
JavaScript 前端开发
js之一次性定时器
js之一次性定时器
168 1
|
JavaScript 前端开发
js之永久定时器
js之永久定时器
145 1
|
前端开发 JavaScript
JavaScript动态渲染页面爬取——CSS位置偏移反爬案例分析与爬取实战
JavaScript动态渲染页面爬取——CSS位置偏移反爬案例分析与爬取实战
260 0
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
378 2
|
JavaScript 前端开发
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
289 1
JavaScript中的原型 保姆级文章一文搞懂
JS+CSS3文章内容背景黑白切换源码
JS+CSS3文章内容背景黑白切换源码是一款基于JS+CSS3制作的简单网页文章文字内容背景颜色黑白切换效果。
181 0