网上购物变得的越来普遍,各种"秒杀"抢购的活动越来越多,除了早年雷布斯的"饥饿营销",大多数秒杀活动还是有货源的,我们秒不到货,大多是因为我们败给了计算机脚本...
用javascript实现秒杀倒计时的效果
模拟一个激动人心的 "剁手节" 的倒计时页面!
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();