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