Jquery滚动以及上一个和下一个Div按钮

时间:2013-08-12 20:08:59

标签: javascript jquery html button scroll

所以我要做的就是在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快捷键)。

非常感谢并抱歉使用你的时间。

0 个答案:

没有答案