基于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 相关文章推荐
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
Mar 20 Javascript
运行Node.js的IIS扩展iisnode安装配置笔记
Mar 02 Javascript
Angularjs 实现分页功能及示例代码
Sep 14 Javascript
vue实现页面加载动画效果
Sep 19 Javascript
使用JavaScript实现一个小程序之99乘法表
Sep 21 Javascript
使用3D引擎threeJS实现星空粒子移动效果
Sep 13 Javascript
详解Vue CLI3 多页应用实践和源码设计
Aug 30 Javascript
React如何解决fetch跨域请求时session失效问题
Nov 02 Javascript
vue全局使用axios的方法实例详解
Nov 22 Javascript
js中的深浅拷贝问题简析
May 10 Javascript
JavaScript的console命令使用实例
Dec 03 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
Mar 01 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使用SOAP调用.net的WebService数据
2013/11/12 PHP
30个php操作redis常用方法代码例子
2014/07/05 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
windows下安装php的memcache模块的方法
2015/04/07 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
jquery动态加载图片数据练习代码
2011/08/04 Javascript
JavaScript Memoization 让函数也有记忆功能
2011/10/27 Javascript
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
动态创建按钮的JavaScript代码
2016/01/29 Javascript
第一章之初识Bootstrap
2016/04/25 Javascript
Angularjs 自定义服务的三种方式(推荐)
2016/08/02 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
详解Angualr 组件间通信
2017/01/21 Javascript
jQuery简单获取DIV和A标签元素位置的方法
2017/02/07 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
Vue中的Vux配置指南
2017/12/08 Javascript
vue 做移动端微信公众号采坑经验记录
2018/04/26 Javascript
jquery获取元素到屏幕四周可视距离的方法
2018/09/05 jQuery
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
[01:20]辉夜杯背景故事宣传片《辉夜传说》
2015/12/25 DOTA
pycharm下查看python的变量类型和变量内容的方法
2018/06/26 Python
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
英国领先的电视购物零售商:Ideal World
2019/03/18 全球购物
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
经典演讲稿范文
2013/12/30 职场文书
采购部主管岗位职责
2014/01/01 职场文书
计算机多媒体专业自荐信
2014/07/04 职场文书
公安局班子个人对照检查材料思想汇报
2014/10/09 职场文书
党员评议个人总结
2014/10/20 职场文书
2014年信息宣传工作总结
2014/12/18 职场文书