解密"秒杀"软件 | 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 条评论
登录 后参与评论

相关文章

来自专栏禁心尽力

采用HTML5之"data-"机制自由提供数据

周末总是过得很快,又到了跟代码亲密接触的日子,我在北京向各位问好,今天我分享一点关于前端的东西,HTML5之标签"data-*"自定义属性的值传递。     ...

216100
来自专栏FreeBuf

XssHtml – 基于白名单的富文本XSS过滤类

关于富文本XSS,我在之前的一篇文章里(http://www.freebuf.com/articles/web/30201.html)已经比较详细地说明了一些开...

71780
来自专栏蘑菇先生的技术笔记

关于电脑操作一些高效的方法工具

32050
来自专栏Python学习心得

​Python爬虫--- 1.5 爬虫实践: 获取百度贴吧内容

原文链接:https://www.fkomm.cn/article/2018/7/22/21.html

13500
来自专栏杨建荣的学习笔记

一个95后开发者关于消息发送的实践

这篇文章最开始投给我的时候,没有引起太多的重视,但是看了内容之后,真是被里面的细节吸引了。

12200
来自专栏Jerry的SAP技术分享

小技巧:不用任何媒体处理软件进行视频压缩

如果需要压缩一个很大的视频,网上有很多介绍,但是都需要安装各种视频处理软件,比如格式工厂等等。本文介绍一个非常方便的小技巧,无需任何视频处理软件,只需要微软的P...

21920
来自专栏云瓣

通过一个demo了解Redux

TodoList小demo 效果展示 项目地址 (单向)数据流 数据流是我们的行为与响应的抽象;使用数据流能帮我们明确了行为对应的响应,这和react的状态可预...

351100
来自专栏数据小魔方

R语言网络数据抓取的又一个难题,终于攻破了!

单纯从数据抓取的逻辑来讲(不谈那些工程上的可用框架),个人觉得R语言中现有的请求库中,RCurl和httr完全可以对标Python中的urllib和reuqes...

47330
来自专栏Fundebug

抛弃console.log(),拥抱浏览器Debugger

为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。

16130
来自专栏一“技”之长

iOS8新特性扩展(Extension)应用之三——照片编辑插件

        通过前几篇博客的介绍,我们了解到扩展给app提供的更加强大的交互能力,这种强大的交互能力另一方面体现在照片编辑插件的应用。

9620

扫码关注云+社区

领取腾讯云代金券