2014-02-20 138 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