我使用以下命令创建了一个 jQuery 倒计时器:http://hilios.github.io/jQuery.countdown/
<h1>Count down timer</h1>
<div id="getting-started"></div>
<script type="text/javascript">
$('#getting-started').countdown('2016/01/01', function(event) {
$(this).html(event.strftime('%w weeks %d days %H:%M:%S'));
});
</script>
这是一个骗子:http://plnkr.co/edit/gcewqxLMchFmWgZjwpwW?p=preview
但是,我要不要设置倒计时的样式来实现上面首页的倒计时效果呢?
最佳答案
查看主页的源代码,我成功地“破解”了类似的内容:http://plnkr.co/edit/2UwnSfidZHWDt1eg9P4n?p=preview
里面有很多内联 JS:
$(window).on('load', function() {
var labels = ['weeks', 'days', 'hours', 'minutes', 'seconds'],
nextYear = (new Date().getFullYear() + 1) + '/01/01',
template = _.template($('#main-example-template').html()),
currDate = '00:00:00:00:00',
nextDate = '00:00:00:00:00',
parser = /([0-9]{2})/gi,
$example = $('#main-example');
// Parse countdown string to an object
function strfobj(str) {
var parsed = str.match(parser),
obj = {};
labels.forEach(function(label, i) {
obj[label] = parsed[i]
});
return obj;
}
// Return the time components that diffs
function diff(obj1, obj2) {
var diff = [];
labels.forEach(function(key) {
if (obj1[key] !== obj2[key]) {
diff.push(key);
}
});
return diff;
}
// Build the layout
var initData = strfobj(currDate);
labels.forEach(function(label, i) {
$example.append(template({
curr: initData[label],
next: initData[label],
label: label
}));
});
// Starts the countdown
$example.countdown(nextYear, function(event) {
var newDate = event.strftime('%w:%d:%H:%M:%S'),
data;
if (newDate !== nextDate) {
currDate = nextDate;
nextDate = newDate;
// Setup the data
data = {
'curr': strfobj(currDate),
'next': strfobj(nextDate)
};
// Apply the new values to each node that changed
diff(data.curr, data.next).forEach(function(label) {
var selector = '.%s'.replace(/%s/, label),
$node = $example.find(selector);
// Update the node
$node.removeClass('flip');
$node.find('.curr').text(data.curr[label]);
$node.find('.next').text(data.next[label]);
// Wait for a repaint to then flip
_.delay(function($node) {
$node.addClass('flip');
}, 50, $node);
});
}
});
});
关于jQuery.倒计时样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29668725/