2014-02-20 97 views
0

大家晚上好!目前,在我正在使用的网站(http://bit.ly/1eGCShX)上,我已经将它向下滚动到每个div,但是在完成并再次单击最后一个div后,它不会向后滚动一直到顶部(而不是前面的div),这就是我想要完成的。如何重复滚动到每个div后重复ScrollTop函数?

然而,我需要它本身再重复了,开始从第一个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/

再次欣赏抽出宝贵的时间来阅读,并希望大家积极的一周。

回答

2

如果你有

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

将其更改为

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

你告诉你要滚动到前一个元素的功能。但你实际上想滚动到第一个元素。

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

+0

唉唉,哇!肯定的是,思考不对,不知道如何使用eq()选择器!我现在正在研究更多关于它的内容,对于选择索引号非常有用。非常感谢你。 – DoPeT