jQuery控制倒计时
1.1 秒杀的倒计时
做秒杀网页总免不了倒计时,但没有很好的服务器,啥资源都没有,只能将部分任务交给浏览器去处理,比如秒杀首页的倒计时,因为真正秒杀是在具体页面,首页只是展示而已,所以误差一点是允许的。
而在具体商品页,时间要求比较严谨,可以通过每秒向服务器提交信息核实,也可以通过隔时间段提交,核对并确保时间无误(误差较小)。
1.2 jQuery控制倒计时示例
1 $(document).ready(function() { 2 onTimer("#time",12000); 3 }); 4 5 // 该函数用于执行倒计时 6 function onTimer(id, time) { 7 // 将传进来的long型转换成秒 8 var remainingTime = time / 1000; 9 var hour = 0; 10 var minute = 0; 11 var second = 0; 12 13 // 需要将其句柄赋予一个变量,方便清除该事件 14 var stopCountDown = setInterval(countDown, 1000); 15 16 function countDown() { 17 if(remainingTime > 0) { 18 // 如果倒计时大于0,则继续倒计时 19 hour = Math.floor(remainingTime / 3600); 20 minute = Math.floor(Math.floor(remainingTime % 3600) / 60); 21 second = Math.floor(remainingTime % 60); 22 var formatTime = numToDate(hour, minute, second); 23 changeShowTime(id, formatTime); 24 remainingTime--; 25 26 /* 这里可用Ajax提交到服务器的 */ 27 28 }else { 29 // 若倒计时为0,则清除事件 30 clearInterval(stopCountDown); 31 32 /* 这里可用Ajax提交到服务器的 */ 33 } 34 } 35 } 36 37 // 将数字转换成时间格式,如: 09:30:45 38 function numToDate(hour, minute, second) { 39 var tohour = hour < 10 ? ("0" + hour) : hour; 40 var tominute = minute < 10 ? ("0" + minute) : minute; 41 var tosecond = second < 10 ? ("0" + second) : second; 42 return tohour + ":" + tominute + ":" + tosecond; 43 } 44 45 // 该函数用于显示倒计时 46 function changeShowTime(id,time) { 47 /* 该函数内编写显示倒计时的语句 */ 48 /////////////////////////////////////////////////////// 49 50 $(id).html(time); 51 }
1.3 关于多个商品倒计时
一般往往不止一个商品需要倒计时,而商品的信息又是从服务端迭代出来的,我们需要一个可以识别的标志,所以可在迭代时加入其ID,如下:
1 <!-- 以上,略 --> 2 3 <s:iterator value="M_list" status="boxes"> 4 <div id="goods_<s:property value="sid"/>" class="show_box float_left"> 5 6 <!-- 略 --> 7 8 </div> 9 </s:iterator>
这时的问题便是如何拿到每个ID并为其加上之前写好的方法,可以通过each(callback)方法,该方法以每一个匹配的元素作为上下文来执行一个函数。
1 $(document).ready(function) { 2 /* 以上,略 */ 3 4 $("div[class *= show_box]").each(function(){ 5 var id = $(this).attr("id"); 6 7 /* 这里编写要绑定的事件,略 */ 8 } 9 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。