标签:type function instance label date contain end on() 回调
调用方法
var _TimeCountDown = new TimeCountDown("sttime1",{
startTime:‘2016-07-30 10:07:55‘, //开始时间
endTime:‘2016-07-30 10:08:00‘, //结束时间
timeCallBack:"timeOverfun", //回调函数
});
countDown.js
/**
* @author wanghaitao
* @param sttime1 id
* @param startTime 开始时间
* @param endTime 结束时间
* @param timeCallBack 回调函数
*
* var _TimeCountDown = new TimeCountDown("sttime1",{
startTime:‘2016-07-30 10:07:55‘, //开始时间
endTime:‘2016-07-30 10:08:00‘, //结束时间
timeCallBack:"timeOverfun", //回调函数
});
*/
(function(window,undefined){
var TimeCountDown = function(container, params){
if(!(this instanceof TimeCountDown)) return new TimeCountDown(container, params);
var defaults = {
endTime:‘‘, //title
startTime:‘‘, //请传入ID,或DOM对象
Lid:‘‘,
leftTitle:"倒计时:",//左侧名称
colonStat:false,//是否把小时分转换成:
timeCallBack:null //关闭执行的回调函数
}
params = params || {};
var originalParams = {};
for (var param in params) {
if (typeof params[param] === ‘object‘ && params[param] !== null && !(params[param].nodeType || params[param] === window || params[param] === document || (typeof Dom7 !== ‘undefined‘ && params[param] instanceof Dom7) || (typeof jQuery !== ‘undefined‘ && params[param] instanceof jQuery))) {
originalParams[param] = {};
for (var deepParam in params[param]) {
originalParams[param][deepParam] = params[param][deepParam];
}
}
else {
originalParams[param] = params[param];
}
}
for (var def in defaults) {
if (typeof params[def] === ‘undefined‘) {
params[def] = defaults[def];
}
else if (typeof params[def] === ‘object‘) {
for (var deepDef in defaults[def]) {
if (typeof params[def][deepDef] === ‘undefined‘) {
params[def][deepDef] = defaults[def][deepDef];
}
}
}
}
var s = this;
// Params
s.params = params;
s.container = container;
s.currentBreakpoint = undefined;
s.calculateTime = function(){
var startTime = s.vert(this.params.startTime);
var endTime = s.vert(this.params.endTime);
var time = endTime - startTime; //时间差的毫秒数 ;
return time;
}
s.vert = function(time){
if(typeof time == "undefined" || time==""){
return false;
}
var strtime = (time).replace(/-/g,"/");
var date1 = new Date(strtime);
return parseInt(date1.getTime());
}
s.nTime = s.calculateTime();
s.countdown();
};
TimeCountDown.prototype = {
countdown:function(){
var interval = 1000; //毫秒
var time;
this.nTime = this.nTime - interval;
var leave1 = this.nTime;//计算天数后剩余的毫秒数
var t = Math.floor(Math.floor((leave1/(3600*1000))/24));
var hleave = this.nTime%((24*3600*1000));
//把剩余毫秒数转换为小时
var h = Math.floor(hleave/(3600*1000)) < 10 ? "0"+ Math.floor(hleave/(3600*1000)) : Math.floor(hleave/(3600*1000));
var leave2 = this.nTime%(3600*1000); //计算小时数后剩余的毫秒数
//把转换小时之后,剩余毫秒数转换为分钟
var m = Math.floor(leave2/(60*1000)) < 10 ? "0" + Math.floor(leave2/(60*1000)) : Math.floor(leave2/(60*1000));
//把转换分钟之后,剩余毫秒数转换为秒
var leave3 = leave2%(60*1000); //计算分钟数后剩余的毫秒数
var s = Math.round(leave3/1000) < 10 ? "0" + Math.round(leave3/1000) : Math.round(leave3/1000);
if(!this.params.colonStat){
if(t == 0){
time = this.params.leftTitle+"<span>" + h + "</span><label>时</label><span>" + m + "</span><label>分</label><span>" + s + "</span><label>秒<label>";
}else{
time = this.params.leftTitle+"<span>" + t + "</span><label>天</label><span>" + h + "</span><label>时</label><span>" + m + "</span><label>分</label><span>" + s + "</span><label>秒<label>";
}
}else{
time = this.params.leftTitle+"<span>" + h + "</span><label>:</label><span>" + m + "</span><label>:</label><span>" + s + "</span><label><label>";
}
var callBackTime = t+h+m+s;
document.querySelector("#"+this.container).innerHTML = time;
if(callBackTime <= 0){
eval(this.params.timeCallBack);
return false;
}
var that = this;
setTimeout(function(){
that.countdown();
},interval);
}
}
window.TimeCountDown=TimeCountDown;
})(window,undefined);
javascript 倒计时天、小时、分钟、描述的倒计时代码
标签:type function instance label date contain end on() 回调
原文地址:http://www.cnblogs.com/haitaoblog/p/6045970.html