1日の数時間を表すリストがあります。そのようです:
<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>
そして、次のように、現在の時間を取得し、アニメーションでリスト内のその時間を見つける「Now」ボタンがあります。
$('#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 時であることを検出し、そのリスト アイテムにジャンプします。
これどうやってするの?