1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
(function ($) {
$.fn.countdown = function (options) {
var settings = $.extend({
"seconds": 0,
"ongoing": true,
"selector-start": "",
"selector-pause": "",
"prefix-text": "",
"stop-text": "00:00:00",
"normal-class": "",
"warning-class": "",
"stop-class": "",
"warning-time": 0
}, options);
var timer;
var elem = this;
var ongoing = settings['ongoing'];
function draw() {
if (settings['seconds'] <= 0) {
$(elem).html(settings['stop-text']);
$(elem).removeClass(settings['normal-class']).removeClass(settings['warning-class']).addClass(settings['stop-class']);
clearInterval(timer);
} else {
if (settings['seconds'] <= settings['warning-time'] && !$(elem).hasClass(settings['warning-class'])) {
$(elem).removeClass(settings['normal-class']).addClass(settings['warning-class']);
}
var time = settings['seconds']
var second = time % 60;
var minute = Math.floor(time / 60) % 60;
var hour = Math.floor(time / 3600) % 60;
second = (second < 10) ? '0' + second : second;
minute = (minute < 10) ? '0'+ minute : minute;
hour = (hour < 10) ? '0'+hour : hour;
var res = hour + ":" + minute + ":" + second
$('div.timer span.second').html(second);
$('div.timer span.minute').html(minute);
$('div.timer span.hour').html(hour);
// var res = Math.floor(settings['seconds'] / 60) < 10 ? "0" + Math.floor(settings['seconds'] / 60) : Math.floor(settings['seconds'] / 60);
// res = res + ':' + (settings['seconds'] % 60 < 10 ? "0" + (settings['seconds'] % 60) : settings['seconds'] % 60);
$(elem).text(settings['prefix-text'] + res);
}
}
$(settings['selector-start']).bind("click", function () {
if (!ongoing) {
timer = setInterval(function () {
settings['seconds']--;
draw();
}, 1000);
ongoing = true;
}
});
$(settings['selector-pause']).bind("click", function () {
clearInterval(timer);
ongoing = false;
});
$(elem).removeClass(settings['stop-class']).removeClass(settings['warning-class']).addClass(settings['normal-class']);
draw();
if (ongoing) {
timer = setInterval(function () {
settings['seconds']--;
draw();
}, 1000);
}
};
})(jQuery);