专栏首页木子昭的博客解密"秒杀"软件 | JavaScript最佳入门案例用javascript实现秒杀倒计时的效果chrome "奇技淫巧" 之 脚本编辑器!

解密"秒杀"软件 | JavaScript最佳入门案例用javascript实现秒杀倒计时的效果chrome "奇技淫巧" 之 脚本编辑器!

网上购物变得的越来普遍,各种"秒杀"抢购的活动越来越多,除了早年雷布斯的"饥饿营销",大多数秒杀活动还是有货源的,我们秒不到货,大多是因为我们败给了计算机脚本...

秒杀

用javascript实现秒杀倒计时的效果

模拟一个激动人心的 "剁手节" 的倒计时页面!

2017年"剁手节"倒计时

chrome "奇技淫巧" 之 脚本编辑器!

使用chrome自带的脚本工具,写一个秒杀的脚本!

打开脚本工具

编写脚本

运行脚本,脚本自动"秒杀"

运行脚本

这是运行时的效果演示,最后一次我的鼠标没动,脚本模拟鼠标完成了最后的点击!

最终效果演示!

javascript与java是什么关系?

大概就是 "雷锋" 与 "雷锋塔"的关系!

为啥要学javascript, javascript的优势是什么?

其实原生的javascript语言并不好学,所以很多人选择折中去学jquery(jquery是javascript的一个库,比javascript稍微容易一些),但我们没有选择,javascript是唯一被各大浏览器原生支持的语言,坦率的讲,javascript的水还是蛮深的,没有几个人敢说自己精通javascript;关于优势:Node.js可以开发服务端,也就是,把javascript玩6了,就可以尝试做全栈了!

示例中源码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>剁手倒计时!</title>

    <script>

        window.onload = function () {

            //获取HTML对象
            var oTime_box = document.getElementById("time_box");

            //设置秒杀开始时间,这里以 "剁手节|双十一"为例
            // 0-11 表示 12个月(容易出错!)

            // 1-31 表示一个月的某天(这个要看月份具体的情况,也可能是1-28,1-29,1-30)

            // 0-23 表示一天的24小时
            // 0-59 表示一小时的60分钟
            // 0-60 表示一分钟的60秒
            //今天的时间
            //var targetDate = new Date(2017, 8, 18, 12, 0, 0);
            //双十一的时间
            var targetDate = new Date(2017, 10, 11, 0, 0, 0);

            //setInterval函数可以每隔一段的时间调用一次目标函数
            // 我们为了精准, 每隔0.1秒,更新一次当前时间

            setInterval(update_time, 100);
            //页面加载完成后立刻调用一次函数
            update_time();


            //更新时间的主函数,这是最常见的函数命名方式

            function update_time() {

                //获取当前时间
                var nowDate = new Date();

                //获取据目标时间的    秒数

                console.log(targetDate);
                var edge_millisecond = parseInt((targetDate - nowDate)/1000);


                // 获取天数

                var edge_days = parseInt(edge_millisecond/(24*60*60));

                //获取小时数

                var edge_hours = parseInt(edge_millisecond%(24*60*60)/3600);

                //获取分钟数

                var edge_minutes = parseInt(edge_millisecond%(24*60*60)%(60*60)/60);

                //获取秒数

                var edge_seconds = parseInt(edge_millisecond%(24*60*60)%(60*60)%60);


                // 为了美观,使显示的数字一直保持两位
                if (edge_seconds<=9){

                    edge_seconds = "0" + edge_seconds;

                }

                if (edge_minutes <=9){

                    edge_minutes = "0" + edge_minutes;

                }


                if (edge_hours <=9){

                    edge_hours = "0" + edge_hours;

                }

                if (edge_days <=9){

                    edge_days = "0" + edge_days;

                }



                // 为了避免出现负值,时间全部归零
                if (nowDate >= targetDate){

                    edge_days = "00";
                    edge_hours = "00";
                    edge_minutes = "00";
                    edge_seconds = "00";

                }


                var result_time = '距离"双十一 , 剁手节"<br>还剩' + edge_days + "天" + edge_hours + "小时" + edge_minutes + "分" + edge_seconds +"秒";

                oTime_box.innerHTML = result_time;

                //获取点击区域
                var obu = document.getElementById("butt");

                // 点击事件逻辑!
                obu.onclick = function () {

                    if (nowDate > targetDate){
                        alert("抢购成功!")

                    }else{

                        alert("还没到抢购时间呢!")


                    }
                };


            }


        }

    </script>


    <style>

        #time_box{

            font-size: 50px;

            margin: 0 auto;


        }

        .content{

            width: 800px;

            margin: 15% auto;

            text-align: center;

            line-height: 100px;
            color: #ea6f5a;;

        }

        #butt{
            width: 200px;
            height: 80px;
            background-color: #ea6f5a;
            border-radius: 3px;
            text-align: center;
            line-height: 80px;
            color: white;
            margin: 0 auto;
            font-size: 35px;
            top: 30%;

        }

        .my_button{

            width: 100%;


        }




    </style>


</head>
<body>

<!--秒杀内容-->
<div class="content">

<div id="time_box">

</div>
</div>


<!--按钮-->
<div class="my_button">

<div id="butt">

    点击秒杀!

</div>
</div>


</body>
</html>

秒杀脚本

// 获取按钮对象
var obu = document.getElementById("butt");

// 设置秒杀时间(默认为11月11号0时0分秒)
var targetDate = new Date(2017, 10, 11, 0, 0, 0);

// 获取当前时间
var nowDate = new Date();

//用递归实现,循环监听时间的变化,
function check_click(){

    nowDate = new Date();
    //时间到,则进行点击
    if (nowDate > targetDate){
    
        obu.onclick();
    }

    else{
    //每隔 1秒检测一次时间
    setTimeout(check_click,1000); 
    }



}

console.log("开始!");
//调用函数
check_click();

如果您喜欢python,喜欢故事,请点赞或关注我!您的支持是对作者最大的鼓励!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 解决百度Echarts图表坐标轴越界

    Echarts是由百度提供的数据可视化解决方案, 可以让我们快速实现功能丰富的图表,官网链接

    zhaoolee
  • 《二箱+以图搜图》让你在搜图方面随心所欲(为所欲为)

    《二箱 以图搜图》是一款集合了各种搜图引擎的小工具, 这里介绍它比较实用的几个搜图小功能, 希望通过这篇文章, 让你在搜图方面随心所欲(为所欲为)~

    zhaoolee
  • Markdown一键转换到"富文本格式"

    zhaoolee
  • Havel定理

    将顶点进行排序,去掉度m最大的点,依次让其后m个数减1,若后面的某个顶点出现负数的情况或后面的数的个数少于最大的度 #include<stdio.h> #inc...

    用户1624346
  • 数码管驱动设计-ISE操作工具

    本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、初入职场小...

    FPGA技术江湖
  • FPGA零基础学习:数码管驱动设计

    本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、初入职场小...

    FPGA技术江湖
  • 使用高斯混合模型建立更精确的聚类

    我真的很喜欢研究无监督学习问题。它们为监督学习问题提供了一个完全不同的挑战,用我拥有的数据进行实验的发挥空间要比监督学习大得多。毫无疑问,机器学习领域的大多数发...

    磐创AI
  • 为什么数据库不应该使用外键

    当我们想要持久化地存储数据时,使用关系型数据库往往都是最稳妥的选择,这不仅因为今天的关系型数据库种类非常丰富并且稳定,还因为不同社区对关系型数据库的支持都非常完...

    猿天地
  • 解读 | 如何用SPSS进行数据分析

    SPSS是社会统计科学软件包的简称, 其官方全称为IBM SPSS Statistics。SPSS软件包最初由SPSS Inc.于1968年推出,于2009年被...

    CDA数据分析师
  • 可读代码编写炸鸡一

    我一开始其实是想写设计模式,写了一定的积累。虽然我也想写比较高端的算法,数据结构,甚至 AI 的东西。但是很无奈,现在能力不足无法下笔。

    syy

扫码关注云+社区

领取腾讯云代金券