基于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第二章
Sep 30 Javascript
关于JavaScript与HTML的交互事件
Apr 12 Javascript
浅析return false的正确使用
Nov 04 Javascript
node.js中的path.join方法使用说明
Dec 08 Javascript
JavaScript中的console.assert()函数介绍
Dec 29 Javascript
JavaScript兼容浏览器FF/IE技巧
Aug 14 Javascript
详解webpack es6 to es5支持配置
May 04 Javascript
Vue.js用法详解
Nov 13 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
Dec 25 jQuery
js实现点击按钮复制文本功能
Jul 20 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
Aug 30 Javascript
Vue实现图书管理小案例
Dec 03 Vue.js
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
2020年4月放送决定!第2期TV动画《邪神酱飞踢》视觉图&主题曲情报公开!
2020/03/06 日漫
php压缩多个CSS为一个css的代码并缓存
2011/04/21 PHP
处理单名多值表单的详解
2013/06/08 PHP
解析如何修改phpmyadmin中的默认登陆超时时间
2013/06/25 PHP
php获取新浪微博数据API实例
2013/11/12 PHP
smarty中英文多编码字符截取乱码问题解决方法
2014/10/28 PHP
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
jquery 简短右键菜单 多浏览器兼容
2010/01/01 Javascript
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
JS实现简单的右下角弹出提示窗口完整实例
2016/06/21 Javascript
Angular2自定义分页组件
2017/04/19 Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
2017/06/22 Javascript
bootstrap时间控件daterangepicker使用方法及各种小bug修复
2017/10/25 Javascript
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
bootstrap里bootstrap动态加载下拉框的实例讲解
2018/08/10 Javascript
JavaScript模板引擎实现原理实例详解
2018/12/14 Javascript
p5.js码绘“跳动的小正方形”的实现代码
2019/10/22 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
2020/01/21 Javascript
前端vue如何使用高德地图
2020/11/05 Javascript
Python base64编码解码实例
2015/06/21 Python
pyqt 实现为长内容添加滑轮 scrollArea
2019/06/19 Python
Python将string转换到float的实例方法
2019/07/29 Python
python可视化实现KNN算法
2019/10/16 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
2020/05/26 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
浅谈HTML5 defer和async的区别
2016/06/07 HTML / CSS
毕业生写求职信的要点
2014/03/04 职场文书
师德师风整改措施
2014/10/24 职场文书
Golang标准库syscall详解(什么是系统调用)
2021/05/25 Golang
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android