基于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 相关文章推荐
解决FLASH需要点击激活的代码
Dec 20 Javascript
JS时间选择器 兼容IE6,7,8,9
Jun 26 Javascript
JavaScript严格模式详解
Nov 18 Javascript
JavaScript优化专题之Loading and Execution加载和运行
Jan 20 Javascript
javascript类型系统——undefined和null全面了解
Jul 13 Javascript
微信小程序 教程之事件
Oct 18 Javascript
自动适应iframe右边的高度
Dec 22 Javascript
微信小程序表单验证form提交错误提示效果
Jun 19 Javascript
解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题
Aug 25 Javascript
JS回调函数深入理解
Oct 16 Javascript
JS中的变量作用域(console版)
Jul 18 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
Nov 05 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的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
php常用字符函数实例小结
2016/12/29 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
2014/08/10 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
2015/08/11 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
JavaScript模块规范之AMD规范和CMD规范
2015/10/27 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
JavaScript实现反转字符串的方法详解
2017/04/27 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
2018/11/15 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
使用异步组件优化Vue应用程序的性能
2019/04/28 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
Python搜索引擎实现原理和方法
2017/11/27 Python
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
2019/08/06 Python
三星新西兰官网:Samsung新西兰
2019/03/05 全球购物
意大利自行车商店:Cingolani Bike Shop
2019/09/03 全球购物
公司综合部的成员自我评价分享
2013/11/05 职场文书
五年级数学教学反思
2014/02/11 职场文书
个人对照检查材料
2014/02/12 职场文书
会计与出纳自荐书范文
2014/03/16 职场文书
央视元宵晚会主持串词
2014/03/25 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
软件测试专业推荐信
2014/09/18 职场文书
党员教师群众路线思想汇报范文
2014/10/28 职场文书
2016八一建军节慰问信
2015/11/30 职场文书
SQL Server实现分页方法介绍
2022/03/16 SQL Server
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫