2014-02-20 1 views
0

안녕하세요 여러분! 현재, (http://bit.ly/1eGCShX)에서 작업하고있는 사이트에서 각 div의 모든 항목을 아래로 스크롤해야합니다. 그러나 마지막 항목을 다시 클릭하면 다시 스크롤되지 않습니다. 맨 위 (이전 div 대신)까지 줄곧 내가 달성하려고하는 것입니다. 각 div로 스크롤 한 후 ScrollTop 기능을 반복하는 방법을 반복 하시겠습니까?

그러나, 나는 당신이 한 번 완료하고 다시 첫 번째를 클릭 스크롤 경우 중단 된 부분은 별 있기 때문에, 다시 첫번째 사업부에서 시작 자체를 다시 이상 반복해야합니다. 나는 이것을 잠시 망설이고 그것을 얻을 수 없었다. 어떤 도움을 친절하게 감사합니다! 여기에 내 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을 사용하면 더 쉽게 작업을 수행 할 수 있습니다. 나는 단순화 된 버전을 만들었습니다.

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

다시 말하지만,이 읽을 수 있도록 시간을 내 주셔서 감사하고 모든 긍정적 인 주 바랍니다. 당신이

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

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

변화 그것은 당신이 이전 요소로 이동하고 싶은 기능을 이야기했다가

답변

2

. 그러나 실제로는 첫 번째 요소로 스크롤하고 싶습니다.

근무 예 : http://jsfiddle.net/58ZMZ/

+0

아, 와우! 확실히, 옳다고 생각하지 않고 eq() 선택기를 사용하는 방법을 알지 못했습니다! 나는 지금 그것에 대해 더 연구하고 있으며 인덱스 번호를 선택하는데 매우 유용하게 들린다. 고맙습니다. – DoPeT