基于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 特性检测并非浏览器检测
Jan 15 Javascript
Javascript 函数中的参数使用分析
Mar 27 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
Sep 09 Javascript
图解JavaScript中的this关键字
May 28 Javascript
关于Vue.js 2.0的Vuex 2.0 你需要更新的知识库
Nov 30 Javascript
Vue开发过程中遇到的疑惑知识点总结
Jan 20 Javascript
BOM之navigator对象和用户代理检测
Feb 10 Javascript
js, jQuery实现全选、反选功能
Mar 08 Javascript
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
Jun 02 jQuery
使用3D引擎threeJS实现星空粒子移动效果
Sep 13 Javascript
JS中移除非数字最多保留一位小数
May 09 Javascript
微信小程序学习之自定义滚动弹窗
Dec 20 Javascript
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实现给一张图片加上水印效果
2016/01/02 PHP
许愿墙中用到的函数
2006/10/07 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
jquery Validation表单验证使用详解
2020/09/12 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
浅析jQuery Mobile的初始化事件
2015/12/03 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
2016/01/14 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
2017/05/17 Javascript
解决JS外部文件中文注释出现乱码问题
2017/07/09 Javascript
js原生代码实现轮播图的实例讲解
2017/07/28 Javascript
JS实现合并json对象的方法
2017/10/10 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
js实现文件上传功能 后台使用MultipartFile
2018/09/08 Javascript
Vue实现移动端左右滑动效果的方法
2018/11/27 Javascript
JS事件流与事件处理程序实例分析
2019/08/16 Javascript
Python中random模块用法实例分析
2015/05/19 Python
Python 数据结构之旋转链表
2017/02/25 Python
Python利用matplotlib生成图片背景及图例透明的效果
2017/04/27 Python
Python简单删除列表中相同元素的方法示例
2017/06/12 Python
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
2020/02/21 Python
Python3 hashlib密码散列算法原理详解
2020/03/30 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
澳大利亚领先的睡衣品牌:Peter Alexander
2016/08/16 全球购物
英国在线花园中心:You Garden
2018/06/03 全球购物
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
美国珠宝精品店:Opulent Jewelers
2019/08/20 全球购物
实习生个人总结范文
2015/02/28 职场文书
机关干部纪律作风整顿心得体会
2016/01/23 职场文书
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python
Docker官方工具docker-registry案例演示
2022/04/13 Servers