;(function(window,document){
console.log(document)
var TimeCount = function(targetDom,options) {
if(!(this instanceof TimeCount)) return new timeCount(targetDom,options)
this.options = this.extend({
setTime: null,
d: null,
h: null,
m: null,
s: null
},options)
if((typeof targetDom) == "string") {
this.targetDom = document.getElementById(targetDom)
console.log(this.targetDom)
}else {
this.targetDom = targetDom
}
this.init()
}
TimeCount.prototype = {
init: function() {
this.cal()
},
extend: function(obj,obj2) {
for(var k in obj2) {
obj[k] = obj2[k]
}
return obj
},
cal: function() {
var _time = new Date(this.options.setTime).getTime()
var date = new Date().getTime()
if(_time < date) {
var error = '设置的时间必须大于当前时间!'
this.error(error)
return
}
if(this.options.d && this.options.h && this.options.m && this.options.s) {
setInterval(this.all(),1000) //为何不生效啊???
}else {
var error = '缺少参数!'
this.error(error)
}
},
error: function(error) {
alert(error)
return error
},
all: function() {
var _time = new Date(this.options.setTime).getTime()
var date = new Date().getTime()
var end = _time - date
if (end>=0) {
d = Math.floor(end/1000/60/60/24);
h = Math.floor(end/1000/60/60%24);
m = Math.floor(end/1000/60%60);
s = Math.floor(end/1000%60);
//赋值
console.log(s)
document.getElementById(this.options.d).innerHTML = d+"天";
document.getElementById(this.options.h).innerHTML = h+"时";
document.getElementById(this.options.m).innerHTML = m+"分";
document.getElementById(this.options.s).innerHTML = s+"秒";
}else {
console.log(this.targetDom)
this.targetDom.innerHTML = '<p>活动已结束,感谢你的参与!</p>'
}
}
}
window.TimeCount = TimeCount
})(window,document)
每隔1秒钟应该计算一次,,
js该怎么写啊?? 现在我非要手动每次刷新一次浏览器才计算一次
html
<html>
<head>
<meta charset="UTF-8">
<title>js简单时分秒倒计时</title>
<script src="index.js"></script>
<script type="text/javascript">
window.onload = function() {
new TimeCount('box',{
setTime: '2018/2/6 11:30',
d: '_d',
h: '_h',
m : '_m',
s: '_s'
})
}
</script>
</head >
<body>
<div id="box">
<span id="_d">00</span>
<span id="_h">00</span>
<span id="_m">00</span>
<span id="_s">00</span>
</div>
</body>
</html>