destoon开发笔记-JQ+JS实现倒计时功能
页面代码
<div class="time " class="" id="onBidtime125" pid="125">
<div class="timeicon" ></div>
距离结束:<span class="day">-</span> 天 <span class="hour">-</span> 小时 <span class="minute">-</span> 分 <span class="second">-</span> 秒
<script type="text/javascript">
$(function(){
endDown2("1472287680","1470660651","#onBidtime125","#onBidtime125 .day","#onBidtime125 .hour","#onBidtime125 .minute","#onBidtime125 .second");
});
</script>
</div>
JS代码
/ 结束倒计时
//etime 结束时间
//ntime 服务器时间
function endDown2(etime,ntime,boxobj,day_elem,hour_elem,minute_elem,second_elem)
var now_time = new Date(ntime*1000);
var end_time = new Date(etime*1000);
var sys_second = (end_time-now_time)/1000;
var timer = setInterval(function(){
if (sys_second > 0) {
sys_second -= 1;
var day = Math.floor((sys_second / 3600) / 24);
var hour = Math.floor((sys_second / 3600) % 24);
var minute = Math.floor((sys_second / 60) % 60);
var second = Math.floor(sys_second % 60);
day_elem && $(day_elem).text(day);//计算天
$(hour_elem).text(hour<10?"0"+hour:hour);//计算小时
$(minute_elem).text(minute<10?"0"+minute:minute);//计算分
$(second_elem).text(second<10?"0"+second:second);// 计算秒
} else {
clearInterval(timer);
$('#bidTimeStatus').remove();
$(boxobj).html('');
$(boxobj).addClass('end');
}
}, 1000);
}
// 开始倒计时
function startDown2(etime,ntime,boxobj,day_elem,hour_elem,minute_elem,second_elem){
var now_time = new Date(ntime*1000);
var end_time = new Date(etime*1000);
var sys_second = (end_time-now_time)/1000;
var timer = setInterval(function(){
if (sys_second > 0) {
sys_second -= 1;
var day = Math.floor((sys_second / 3600) / 24);
var hour = Math.floor((sys_second / 3600) % 24);
var minute = Math.floor((sys_second / 60) % 60);
var second = Math.floor(sys_second % 60);
day_elem && $(day_elem).text(day);//计算天
$(hour_elem).text(hour<10?"0"+hour:hour);//计算小时
$(minute_elem).text(minute<10?"0"+minute:minute);//计算分
$(second_elem).text(second<10?"0"+second:second);// 计算秒
} else {
$('.noStartBidTbox .th').html('拍卖已开始');
$(boxobj).html('');
$(boxobj).addClass('into');
}
}, 1000);
}
需要时时与服务器同步时间JS代码
function endDown(etime,ntime,boxobj,day_elem,hour_elem,minute_elem,second_elem,msec_elem){
var now_time = new Date(ntime*1000);
var end_time = new Date(etime*1000);
var native_time = new Date().getTime(); //本地时间
var now_cha = now_time - native_time; //服务器和本地时间差
var native_end_time = end_time - now_cha; //本地结束时间
var sys_second = 0;
var bidpids = $(boxobj).attr('pid');
if(bidpids){
var bidpid = bidpids;
}
endDowntimer = setInterval(function(){
// 检查本地时间是否更改
if(Math.abs(native_time - new Date().getTime())>1000){
clearInterval(endDowntimer);
$.post(ajaxGetTime, {'pid':bidpid},function(data){
endDown(data.endtime,data.nowtime,boxobj,day_elem,hour_elem,minute_elem,second_elem,msec_elem);
});
}
sys_second = (native_end_time - new Date().getTime())/100; //本地结束剩余时间
if (sys_second > 0) {
sys_second -= 1;
var day = Math.floor((sys_second / 36000) / 24);
var hour = Math.floor((sys_second / 36000) % 24);
var minute = Math.floor((sys_second / 600) % 60);
var second = Math.floor((sys_second/10) % 60);
var msec = Math.floor(sys_second % 10); //毫秒
day_elem && $(day_elem).text(day);//计算天
$(hour_elem).text(hour<10?"0"+hour:hour);//计算小时
$(minute_elem).text(minute<10?"0"+minute:minute);//计算分
$(second_elem).text(second<10?"0"+second:second);// 计算秒
$(msec_elem).text(msec);// 计算秒的1/10
native_time = new Date().getTime();
} else {
clearInterval(endDowntimer);
// 本地时间结束提交服务器验证是否结束
$.post(ajaxCheckSucc, {'pid':bidpid},function(data){
if(data.status==0){
// startDown(data.end_time,data.now_time,".noStartTime",".noStartTime .day",".noStartTime .hour",".noStartTime .minute",".noStartTime .second",".noStartTime .msec");
endDown(data.end_time,data.now_time,boxobj,day_elem,hour_elem,minute_elem,second_elem,msec_elem);
}else{
if(data.status==1){
$('#bidTimeStatus').remove();
$(boxobj).html('');
$(boxobj).addClass('end');
var user = data.nickname;
if(data.uid==userid){user ='您';}
var msg = '恭喜'+user+'以'+data.money+'元,拍到《'+data.pname+'》';
}else if (data.status==2){
var msg = '《'+data.pname+'》未达到保留价,流拍!'
}
popup.success(msg,'结束提示',function(action){
//success 返回两个 action 值,分别是 'ok' 和 'close'。
if(action == 'ok'){
window.top.location.reload();
}
if(action == 'close'){
window.top.location.reload();
}
});
}
});
}
}, 100);
}
// 开始时间倒计时
function startDown(etime,ntime,boxobj,day_elem,hour_elem,minute_elem,second_elem,msec_elem){
var now_time = new Date(ntime*1000);
var end_time = new Date(etime*1000);
var native_time = new Date().getTime(); //本地时间
var now_cha = now_time - native_time; //服务器和本地时间差
var native_end_time = end_time - now_cha; //本地结束时间
var sys_second = 0;
var bidpids = $(boxobj).attr('pid');
if(bidpids){
var bidpid = bidpids;
}
startDowntimer = setInterval(function(){
if(Math.abs(native_time - new Date().getTime())>1000){
clearInterval(startDowntimer);
$.post(ajaxGetTime, {'pid':bidpid},function(data){
startDown(data.endtime,data.nowtime,boxobj,day_elem,hour_elem,minute_elem,second_elem,msec_elem);
});
}
sys_second = (native_end_time - new Date().getTime())/100; //本地结束剩余时间
if (sys_second > 0) {
sys_second -= 1;
var day = Math.floor((sys_second / 36000) / 24);
var hour = Math.floor((sys_second / 36000) % 24);
var minute = Math.floor((sys_second / 600) % 60);
var second = Math.floor((sys_second/10) % 60);
var msec = Math.floor(sys_second % 10); //毫秒
day_elem && $(day_elem).text(day);//计算天
$(hour_elem).text(hour<10?"0"+hour:hour);//计算小时
$(minute_elem).text(minute<10?"0"+minute:minute);//计算分
$(second_elem).text(second<10?"0"+second:second);// 计算秒
$(msec_elem).text(msec);// 计算秒的1/10
native_time = new Date().getTime();
} else {
$('.noStartBidTbox .th').html('拍卖已开始');
$(boxobj).html('');
$(boxobj).addClass('into');
window.top.location.reload();
}
}, 100);
}
destoon开发笔记-JQ+JS实现倒计时功能的更多相关文章
- 用js实现倒计时功能
源码如下: 原理很简单,看注释吧 <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- js网页倒计时功能(天,时,分,秒)
给定任何一个时间,然后实现现在到那个时间的倒计时. 下面的例子是显示现在到2019年8月1号0时0分的倒计时: <div class="list"> <span ...
- destoon开发笔记-调取资讯标题图
今天刚申请博客园的博客,申请速度挺快的.之前我的文章都是发在自己搭建的博客网站,但是是香港服务器,不想续费了,所以就关闭了.之前的数据也没有了,挺可惜了.不过既然加入博客园的大家庭,我就在这每天记录工 ...
- Android 开发笔记___SQLite__优化记住密码功能
package com.example.alimjan.hello_world; /** * Created by alimjan on 7/4/2017. */ import com.example ...
- Django开发笔记六
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.登录功能完善 登录成功应该是重定向到首页,而不是转发 ...
- 微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
微信小程序+WEB使用JS实现注册[60s]倒计时功能开发步骤: 1.wxml页面代码: <text>绑定手机</text> <form bindsubmit=" ...
- C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginator插件和knockout.js完成分页功能 图片在线裁剪和图片上传总结 循序渐进学.Net Core Web Api开发系列【2】:利用Swagger调试WebApi
C#设计模式总结 一. 设计原则 使用设计模式的根本原因是适应变化,提高代码复用率,使软件更具有可维护性和可扩展性.并且,在进行设计的时候,也需要遵循以下几个原则:单一职责原则.开放封闭原则.里氏代替 ...
- 模块:js实现一个倒计时功能
1.给显示内容加样式 <style> #p1{font-size: large; color: red;} </style> 2.客户端页面 <div id=" ...
- js实现是倒计时功能
工作中经常用到倒计时的功能,最近在整理之前做的项目的时候,发现自己写过一个倒计时的功能的效果,这里和大家分享下!实现这个功能是用原生js写的,不需要加载额外的库文件!功能比较简单,但是可以在此基础上扩 ...
随机推荐
- Spring(或者SpringBoot)整合Spring-Session实现共享session
传统Spring 先引入依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http: ...
- Sitecore 8.2 工作流程
假设您的新Sitecore项目的所有开发都已完成.现在的下一步是在网站上填写内容并准备上线.客户通知您他们希望使用专门的网站管理员团队负责整个内容管理流程,并要求您为他们准备实例以便能够执行此操作. ...
- 洛谷P5017:摆渡车——题解
https://www.luogu.org/problem/P5017 参考:https://www.luogu.org/blog/ztyluogucpp/solution-p5017 我想我大概是废 ...
- vs2019发布Web到云服务器(IIS)
捣鼓了也有几天,到处收集资料终于折腾出来,做点小笔记 原文地址:https://www.cnblogs.com/potential/p/3751426.html 一.我的环境: Windows Ser ...
- ndk-build官方使用说明
ndk-build 脚本可用于编译采用 NDK 基于 Make 的编译系统的项目.此外,我们还针对 ndk-build 使用的 Android.mk和 Application.mk 配置提供了更具体的 ...
- golang学习笔记--接口
go 的接口类型用于定义一组行为,其中每个行为都由一个方法声明表示. 接口类型中的方法声明只有方法签名而没有方法实体,而方法签名包括且仅包括方法的名称.参数列表和结果列表. 只要一种数据类型的方法集合 ...
- 在RedHead中安装Oracle
配置Linux系统下Oracle的安装环境. 1.检查和更新所需软件包. # rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils- ...
- ASP.NET MVC 允许跨域请求设置
场景:创建一个图片上传的站点,用于其他站点跨域上传附件和图片之类. 上传插件结合百度的 webuploader.js 经常会碰到,跨域的问题,如下, 处理方式呢,是在web.config 中配置允许跨 ...
- 2019 263云通信java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.263云通信等公司offer,岗位是Java后端开发,因为发展原因最终选择去了263云通信,入职一年时间了,也 ...
- 【Java】调用摄像头进行拍照并保存【详细】以及处理no jniopencv_core in java.library.path的一种方法
[之前困扰笔者的问题描述] date:2019.12.18 网上教程很多,但是没有看见完整的,所以写一个出来. 调用摄像头需要javaCV的jar包和openCV的jar包,现在已经不需要安装包了 ...