javascript - 滚动到每个div后如何重复ScrollTop函数重复?

标签 javascript jquery html css scrolltop

大家晚上好!目前,在我正在处理的网站 ( http://bit.ly/1eGCShX ) 上,我已经让它一直向下滚动到每个 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 让事情变得更简单 10 倍!我做了一个简化版本。

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

再次感谢您花时间阅读本文,祝大家度过愉快的一周。

最佳答案

你在哪里

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

改成

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

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

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

关于javascript - 滚动到每个div后如何重复ScrollTop函数重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21897497/

相关文章:

jquery - 在 Jquery 中选择按搜索文本

javascript - Jquery每个函数,计算重复项

html - 如何根据场景启用/禁用 html 按钮?

javascript - 仅使用 nodejs/javascript 从私钥 pem 中提取公钥

javascript - 无法以 Angular 显示用户名

javascript - 创建一个列,该列是数据表中其他两列的总和

html - 分块响应式媒体查询

javascript - Angular 5 - 无法分配类属性

javascript - 聊天文本自动向下滚动并从数据库加载信息

javascript - 不明白在 safari 中工作 js