我有一个列表,它代表一天中的几个小时。像这样:
<ol>
<li class="9">Item</li>
<li class="10">Item</li>
<li class="11">Item</li>
<li class="13">Item</li>
<!-- and so on .... -->
</ol>
我有一个“现在”按钮,它可以获取当前时间,然后通过动画在列表中找到该时间,如下所示:
$('#jump-to-now').click(function () {
// new date object
var date = new Date(),
// give us the hour
theHour = date.getHours();
scrollToHour(theHour);
});
function scrollToHour(hourAsNumber) {
// use the hour number and match it against a day with a class of that number
var theListingItem = listingDays.filter('.active-day').find('li').filter('.' + hourAsNumber),
// get the offset relative to the document
offsetTop = theListingItem.offset().top;
$('html, body').animate({
scrollTop: offsetTop
}, slideAnimationTime);
}
这里唯一的问题是,如果没有包含该小时类的列表项,则不会发生任何事情。我想做的是在当前时间之后转到最近的时间。
例如,现在是上午 7 点,用户单击按钮,代码发现上午 7 点之后最近匹配的列表项是上午 9 点,并跳转到该列表项。
我怎样才能做到这一点?