基于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中的eval函数
Nov 02 Javascript
浅析javascript操作 cookie对象
Dec 26 Javascript
javascript中Array数组的迭代方法实例分析
Feb 04 Javascript
js实现iframe自动自适应高度的方法
Feb 17 Javascript
js如何实现点击标签文字,文字在文本框出现
Aug 05 Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
Feb 04 Javascript
使用yeoman构建angular应用的方法
Aug 14 Javascript
jquery获取链接地址和跳转详解(推荐)
Aug 15 jQuery
Angular4自制一个市县二级联动组件示例
Nov 21 Javascript
node puppeteer(headless chrome)实现网站登录
May 09 Javascript
Vue.js实现表格渲染的方法
Sep 07 Javascript
vue实现按钮切换图片
Jan 20 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
php ftp文件上传函数(基础版)
2010/06/03 PHP
php设计模式 Singleton(单例模式)
2011/06/26 PHP
一个PHP二维数组排序的函数分享
2014/01/17 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
2017/03/24 PHP
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
Ajax 数据请求的简单分析
2011/04/05 Javascript
javascript jscroll模拟html元素滚动条
2012/12/18 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
javascript面向对象之访问对象属性的两种方式分析
2015/01/13 Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
2016/08/17 Javascript
jquery+ajax实现省市区三级联动效果简单示例
2017/01/04 Javascript
D3.js进阶系列之CSV表格文件的读取详解
2017/06/06 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
2018/01/02 Javascript
JavaScript多种页面刷新方法小结
2019/04/04 Javascript
vue实现简单全选和反选功能
2020/09/15 Javascript
[38:21]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS LGD-CDEC
2014/05/22 DOTA
python通过shutil实现快速文件复制的方法
2015/03/14 Python
python timestamp和datetime之间转换详解
2017/12/11 Python
通过Python 接口使用OpenCV的方法
2018/04/02 Python
Python数据结构之哈夫曼树定义与使用方法示例
2018/04/22 Python
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
在python中pandas读文件,有中文字符的方法
2018/12/12 Python
Scrapy-Redis结合POST请求获取数据的方法示例
2019/05/07 Python
linux环境下Django的安装配置详解
2019/07/22 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
python写入数据到csv或xlsx文件的3种方法
2019/08/23 Python
捷克家居装饰及图书音像购物网站:Velký košík
2018/04/16 全球购物
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
教师师德反思材料
2014/02/15 职场文书
《三袋麦子》教学反思
2014/03/02 职场文书
《画家乡》教学反思
2014/04/22 职场文书
彩色的翅膀教学反思
2014/04/25 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
总经理检讨书
2014/09/15 职场文书
2014年度工作总结报告
2014/12/15 职场文书
捐书仪式主持词
2015/07/04 职场文书