视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
jQuery实现倒计时及短信倒计时功能的实现代码
2020-11-27 20:03:56 责编:小采
文档

本文主要和大家分享jQuery实现倒计时功能以及jQuery实现发送短信倒计时功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。

在实际运用中,经常会使用到倒计时的效果。以下代码利用jQuery实现了一个倒计时计时器。

<!DOCTYPE html> 
<html> 
 <head> 
 <meta charset="UTF-8"> 
 <title>jquery倒计时实现</title> 
 <style type="text/css"> 
 .shop_list ul li{ 
 display: inline-block; 
 list-style: none; 
 width: 300px; 
 } 
 </style> 
 </head> 
 <body> 
 <p class="shop_list" id="shop_list"> 
 <ul> 
 <li> 
 <img src="img/index/zixun1.jpg"/> 
 <p class="listItem"> 
 <h5>小米手机 Note 顶配版</h5> 
 <p>全网通 香槟金 移动联通<br/>双4G手机 双卡双待</p> 
 <em>¥2998<i>起</i></em> 
 <span class="time" data-starttime="1445982375" data-endtime="1446350400"></span> 
 </p> 
 </li> 
 <li> 
 <img src="img/index/zixun1.jpg"/> 
 <p class="listItem"> 
 <h5>小米手机 Note 顶配版</h5> 
 <p>全网通 香槟金 移动联通<br/>双4G手机 双卡双待</p> 
 <em>¥2998<i>起</i></em> 
 <span class="time" data-starttime='1445982375' data-endtime='1446350400'></span> 
 </p> 
 </li> 
 </ul> 
 </p> 
 </body> 
 <script type="text/javascript" src="js/lib/jquery-1.10.1.min.js" ></script> 
 <script type="text/javascript"> 
 $(function(){ 
 //找到商品列表以及时间显示span 
 var abj = $("#shop_list"), 
 timeObj = abj.find('.time'); 
 //获取开始时间 
 var starttime = timeObj.data('starttime'); 
 
 // 定时器函数 
 function actionDo(){ 
 return setInterval(function(){ 
 timeObj.each(function(index, el) { 
 //surplusTime为活动剩余开始时间 
 var t = $(this), 
 surplusTime = t.data('endtime') -starttime; 
 //若活动剩余开始时间小于0,则说明活动已开始 
 if (surplusTime <= 0) { 
 t.html("活动已经开始"); 
 } else{ 
 //否则,活动未开始,将剩余的时间转换成年,月,日,时,分,秒的形式 
 var year = surplusTime/(24*60*60*365), 
 showYear = parseInt(year), 
 month = (year-showYear)*12, 
 showMonth = parseInt(month), 
 day = (month-showMonth)*30, 
 showDay = parseInt(day), 
 hour = (day-showDay)*24, 
 showHour = parseInt(hour), 
 minute = (hour-showHour)*60, 
 showMinute = parseInt(minute), 
 seconds = (minute-showMinute)*60, 
 showSeconds = parseInt(seconds); 
 t.html(""); 
 //设置
输出到HTML的格式并输出到HTML if (showYear>0) { t.append("<span>"+showYear+"年</span>") }; if (showMonth>0) { t.append("<span>"+showMonth+"月</span>") }; if (showDay>0) { t.append("<span>"+showDay+"天</span>") }; if (showHour>=0) { t.append("<span>"+showHour+"小时</span>") }; if (showMinute>=0) { t.append("<span>"+showMinute+"分钟</span>") }; if (showSeconds>=0) { t.append("<span>"+showSeconds+"秒</span>") }; }; }); starttime++; },1000); // 设定执行或延时时间 }; // 执行它 actionDo(); }); </script> </html>

jQuery短信倒计时功能的实现方法

1.点击按钮的时候,可以进行倒计时,倒计时自定义.2.当接收短信失败后,倒计时停止,可点击重新发送短信.3.点击的元素支持一般标签和input标签。看似很复杂其实实现代码很简单,下面小编给大家分享下实现代码,需要的朋友参考下吧。

实现的主要功能如下:

1.点击按钮的时候,可以进行倒计时,倒计时自定义。

2.当接收短信失败后,倒计时停止,可点击重新发送短信。

3.点击的元素支持一般标签和input标签。

html代码:

<input type="button" class="sameBtn btnCur" value="发送验证码"/>
<p class="sameBtn btnCur2">发送验证码</p>

css代码:

body{padding:100px;text-align: center;}
.sameBtn{display: inline-block;font-size:12px;cursor:pointer;width:76px;height:25px;line-height: 25px;text-align: center;border:0;background: #3186df;color:#fff;}
.sameBtn.current{background: #b1b1b1;}

js代码:

 
//短信倒计时功能
/**使用方式如下:
 * $(".btnCur").CountDownF({
 * time:120,
 * resetWords:'重新发送', //文字定义
 * cnSeconds:'s',//倒计时中显示中文的秒,还是s
 * clickClass:'current', //点击后添加的class类
 * countState:true,
 * callback:function(){
 * setTimeout(function(){
 * //当发送失败后,可以立即清除倒计时与其状态
 * $(".btnCur").CountDownF('clearState');
 * },3000);
 * }
 * });
 *
 * */
;(function($,window,document,undefined){
 var pluginName = 'CountDownF',
 defaluts = {
 time:120,
 resetWords:'重新发送', //文字定义
 cnSeconds:'s',//倒计时中显示中文的秒,还是s
 clickClass:'current', //点击后添加的class类
 countState:true //是否可以倒计时,true可以倒计时,false不能进行倒计时
 }
 function Count(element,options){
 this.element = element;
 this.$element = $(this.element);
 this.state = true;
 this.settings = $.extend({},defaluts,options);
 this.number = this.settings.time;
 this.init();
 }
 Count.prototype = {
 init:function(){
 var self = this;
 self.$element.on('click',function(){
 if(self.state && self.settings.countState){
 self.state = false;
 if(self.settings.countState){
 self._count();
 }
 if(self.settings.callback){
 self.settings.callback();
 }
 }
 });
 },
 //倒计时函数
 _count:function(){
 var self = this;
 if(self.number == 0){
 self._clearInit();
 }else{
 if(self.number < 10){
 //如果当前元素是input,使用val赋值
 this.$element.attr('type') ? this.$element.val('0' + self.number + self.settings.cnSeconds) : this.$element.html('0' + self.number + self.settings.cnSeconds); 
 }else{
 this.$element.attr('type') ? this.$element.val(self.number + self.settings.cnSeconds) : this.$element.html(self.number + self.settings.cnSeconds);
 }
 self.number--;
 this.$element.addClass(self.settings.clickClass);
 self.clearCount = setTimeout(function(){
 self._count();
 },1000);
 }
 },
 //修改是否可发送短信验证码倒计时状态
 change:function(state){
 var self = this;
 self.settings.countState = state;
 },
 //置为初始状态
 _clearInit:function(){
 var self = this;
 self.$element.removeClass(self.settings.clickClass);
 self.$element.attr('type') ? self.$element.val(self.settings.resetWords) : self.$element.html(self.settings.resetWords);
 clearTimeout(self.clearCount);
 self.number = self.settings.time;
 self.state = true;
 },
 //清除倒计时进行状态
 clearState:function(){
 var self = this;
 self._clearInit();
 }
 };
 $.fn.CountDownF = function(options){
 var args = arguments;
 if(options === undefined || typeof options ==='object' ){
 return this.each(function(){
 if(!$.data(this,'plugin' + pluginName)){
 $.data(this,'plugin' + pluginName,new Count(this,options));
 }
 });
 }
 else if(typeof options === 'string' && options !== 'init'){
 var returns;
 this.each(function(){
 var data = $.data(this,'plugin' + pluginName);
 if(data instanceof Count && typeof data[options] === 'function'){
 returns = data[options].apply(data,Array.prototype.slice.call(args,1));
 }
 if(options === 'destory'){
 $.data(this, 'plugin' + pluginName, null);
 }
 });
 return returns !== undefined ? returns : this;
 }
 else{
 $.error('Method' + options + 'does not exist on jQuery.CountDownF');
 }
 }
})(jQuery,window,document);

调用方式:

$(function(){
 $(".btnCur").CountDownF({
 time:120,
 countState:true,
 callback:function(){
 setTimeout(function(){
 $(".btnCur").CountDownF('clearState');
 },3000);
 }
 });
 $(".btnCur2").CountDownF({
 time:50,
 countState:true,
 cnSeconds:'秒',
 callback:function(){
 setTimeout(function(){
 $(".btnCur2").CountDownF('clearState');
 },5000);
 }
 });
})

下载本文
显示全文
专题