滚动到每个div后如何重复ScrollTop功能重复?

时间:2014-02-20 03:30:26

标签: javascript jquery html css scrolltop

大家晚上好!目前,在我正在处理的网站(http://bit.ly/1eGCShX)上,我已经让它向下滚动到每个div,但是在你完成并再次点击最后一个div之后,它没有不要一直向后滚动到顶部(而不是前一个div),这就是我想要完成的。

然而,我需要它再次重复以从第一个div开始,因为如果你完成一次并向上滚动以再次单击第一个,它会在它停止的地方闪烁。我已经搞砸了一段时间而无法得到它。任何帮助友好赞赏!这是我的JS;

  $('div.section').first();

  $('a.display').on('click', function(e) {
      e.preventDefault();

        var t = $(this).text(),
        that = $(this);

      if ($('.currentPanel').next('div.section').length > 0) {
          var $next = $('.currentPanel').next('.section');
          var top = $next.offset().top;

          $('.currentPanel').removeClass('currentPanel');     
          $(function () {
                 $next.addClass('currentPanel');
                 $('html, body').animate({scrollTop: $('.currentPanel').offset().top }, 'slow');

          });
    } else if ($('.currentPanel').prev('div.section').length > 0) {
          var $prev = $('.currentPanel').prev('.section');
          var top = $prev.offset().top;

          $('.currentPanel').removeClass('currentPanel');

          $(function () {
                 $prev.addClass('currentPanel');
                 $('html, body').animate({scrollTop: $('.currentPanel').offset().top }, 'slow');
          });of
    } 
  });

当然,JSFiddle使x10更容易!我做了一个简化的版本。

http://jsfiddle.net/dylanopet/ADsKH/9/

再次,感谢您抽出宝贵时间阅读本文并祝愿大家都感到满意。

1 个答案:

答案 0 :(得分:3)

你在哪里

var $prev = $('.currentPanel').prev('.section');

将其更改为

var $prev = $('.section').eq(0);

您告诉要滚动到上一个元素的函数。但实际上你想滚动到第一个元素。

工作示例:http://jsfiddle.net/58ZMZ/