所以我要做的就是在div上面有一个上一个和下一个按钮,当我点击它们时,它会把我带到下一个和前一个div,因为它应该是。
以下是代码:
$('button.navButton').on('click', function(e) {
if ($(this).hasClass('next') && $('.selected').next('div.day').length > 0 ) {
var $next = $('.selected').next('.day');
var top = $next.offset().top;
$('.selected').removeClass('selected');
$('body').animate({
scrollTop: top
}, function () {
$next.addClass('selected');
});
} else if ($(this).hasClass('prev') && $('.selected').prev('div.day').length > 0 ) {
var $prev = $('.selected').prev('.day');
var top = $prev.offset().top;
$('.selected').removeClass('selected');
$('body').animate({
scrollTop: top
}, function () {
$prev.addClass('selected');
});
}
});
它有效,除非我通过滚动而不是通过按钮到达div,它不会。我知道这是因为不在视图中的div仍然有“选定”类,所以我尝试使用这个函数:
$('div.day').each(function(){
if($(this).offset().top < winHeight/2 && !$(this).hasClass('selected') ){
$('.selected').removeClass('selected');
$(this).addClass('selected');
}
}
这不仅不起作用,而且使之前的代码也不起作用。
我是javascript的新手,所以我无法弄清楚为什么它会让其他代码停止工作,以及如何让正在被视为“被选中”的div? (有点像9gag用的是j k快捷键)。
非常感谢并抱歉使用你的时间。