基于jQuery倒计时插件实现团购秒杀效果


Posted in Javascript onMay 13, 2016

倒计时一般是用来表示未来某一时刻距现在时刻还剩多少时间。倒计时在WEB上应用非常广泛,如考试系统倒计时,团购网站中的优惠活动倒计时等等。今天,我们来使用jQuery倒计时超级实现团购秒杀效果,感兴趣的朋友一起学习吧!

1.1 帮助文档关键字

倒计时 秒杀 timer

1.2. 使用场景

这样的倒计时在购物网站中会经常使用到,比如秒杀,限时抢购,确认收货倒计时。

这个功能并不难实现,就是利用js的定时执行,搜了一下网上的代码,五花八门,都是一个方法,没有做到封装,方便使用,所以写了一个插件,方便项目中使用。

1.4. 使用说明

开始使用

1、 引入oao.timer.js

2、 要显示倒计时时间的div

 <div id="timer1" end-date="2016-1-1"></div>


<div id="timer2" end-date="2015/10/1 12:5:2"></div>Code:

3、 初始化倒计时

 $(function(){//文档加载完初始化倒计时




 $("#timer1").oaoTime();




 $("#timer2").oaoTime();



})

这样就可以使用了,很简单,这样便于项目开发中统一使用,统一修改。

1.5. 上代码

//倒计时的插件
$.fn.extend({
oaoTime:function(){
this.each(function() { 


var dateStr = $(this).attr("end-date");



var endDate = new Date(dateStr.replace(/-/g,"/"));//取得指定时间的总毫秒数 



//now是在动态页面中取得服务器的时间,如果没有定义使用客户端时间



if(now==undefined){




now = new Date().getTime();



}



var tms = endDate - now;//得到时间差



if(tms<0){alert("时间过期了");return;}
$.oaoTime.timers.push({tms:tms,content:$(this)});
$.oaoTime.start();
});
}
});
//倒计时的插件
$.oaoTime={
//倒计时容器,所有需要倒计时的时间都需要注册到这个容器中,容器中放的是一个object,object描述了倒计时的结束时间,以及显示时间的jquery对象(例如div)
timers:[],
//全局的一个倒计时状态,init表示初始化状态,start表示运行中状态,stop表示停止状态
status:'init',
//计算时间并定时刷新时间的方法,本插件的核心代码
takeCount:function(){
//如果定时器没有启动不执行
if(this.status != 'start')return;
setTimeout("$.oaoTime.takeCount()", 1000 );
var timers = this.timers;
for (var i = 0, j = timers.length; i < j; i++) {
//计数减一
timers[i].tms -= 1000;
//console.info(timers[i].tms);
//计算时分秒
var days = Math.floor(timers[i].tms / (1000 * 60 * 60 * 24));
var hours = Math.floor(timers[i].tms / (1000 * 60 * 60)) % 24;
var minutes = Math.floor(timers[i].tms / (1000 * 60)) % 60;
var seconds = Math.floor(timers[i].tms / 1000) % 60;
if (days < 0)days = 0;
if (hours < 0)hours = 0;
if (minutes < 0)minutes = 0;
if (seconds < 0) seconds = 0;
var newTimeText = days+"天"+hours+"小时"+minutes+"分"+seconds+"秒";
timers[i].content.text(newTimeText);
//console.info(newTimeText);
}
},
//启动倒计时
start:function(){
if(this.status=='init'){
this.status = 'start';
this.takeCount();
}
},
//停止倒计时
stop:function(){
this.status = 'stop';
}
}; 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="js/oao.timer.js"></script>
</head>
<body>
<ul>
<div id="stop">停止</div>
<div id="timer1" end-date="2016-1-1"></div>
<div id="timer2" end-date="2015/10/1 12:5:2"></div>
</ul>
</body>
</html>
<script>
$(function(){
$("#stop").click(function() {
$.oaoTime.stop();
});
$("#timer1").oaoTime();
$("#timer2").oaoTime();
})
</script>

以上内容是小编给大家介绍的基于jQuery倒计时插件实现团购秒杀效果,希望对大家有所帮助!

Javascript 相关文章推荐
javascript(jquery)利用函数修改全局变量的代码
Nov 02 Javascript
JS中获取数据库中的值的方法
Jul 14 Javascript
JS代码实现table数据分页效果
May 26 Javascript
浅谈JavaScript中的分支结构
Jul 01 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
Dec 01 Javascript
微信小程序 下拉菜单简单实例
Apr 13 Javascript
ES6模块化的import和export用法方法总结
Aug 08 Javascript
微信小程序实现给嵌套template模板传递数据的方式总结
Dec 18 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
Mar 09 jQuery
Node.js Stream ondata触发时机与顺序的探索
Mar 08 Javascript
原生js实现随机点餐效果
Dec 10 Javascript
基于jQuery拖拽事件的封装
Nov 29 jQuery
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
May 13 #Javascript
最简单的tab切换实例代码
May 13 #Javascript
浅析创建javascript对象的方法
May 13 #Javascript
全面理解JavaScript中的闭包
May 12 #Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
May 12 #Javascript
Node.js的项目构建工具Grunt的安装与配置教程
May 12 #Javascript
js自定义select下拉框美化特效
May 12 #Javascript
You might like
php事务回滚简单实现方法示例
2017/03/28 PHP
PHP实现负载均衡的加权轮询方法分析
2018/08/22 PHP
php apache开启跨域模式过程详解
2019/07/08 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
2020/05/26 PHP
js的with语句使用方法
2007/09/21 Javascript
js no-repeat写法 背景不重复
2009/03/18 Javascript
JavaScript 对象、函数和继承
2009/07/07 Javascript
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
2013/05/11 Javascript
解析URI与URL之间的区别与联系
2013/11/22 Javascript
浅谈JavaScript异常处理语句
2015/06/26 Javascript
Bootstrap每天必学之简单入门
2015/11/19 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
JavaScript 下载svg图片为png格式
2018/06/21 Javascript
如何在vue里添加好看的lottie动画
2018/08/02 Javascript
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
Node.js系列之连接DB的方法(3)
2019/08/30 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
[03:17]2016完美“圣”典风云人物:冷冷专访
2016/12/08 DOTA
Python中os.path用法分析
2015/01/15 Python
Python Matplotlib实现三维数据的散点图绘制
2019/03/19 Python
对Django外键关系的描述
2019/07/26 Python
python自动化UI工具发送QQ消息的实例
2019/08/27 Python
浅谈css3中的渐进增强和优雅降级
2017/12/01 HTML / CSS
canvas绘制树形结构可视图形的实现
2020/04/03 HTML / CSS
应届生污水处理求职信
2013/11/06 职场文书
趣味运动会策划方案
2014/06/02 职场文书
新法人代表任命书
2014/06/06 职场文书
学校安全责任书范本
2014/07/23 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
使用 Apache 反向代理的设置技巧
2022/01/18 Servers
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL