2011-12-19 3 views
1

나는이 plugin에 숨겨진 컨텐츠를 보여주기 위해 요소를 스크롤하는 중입니다.jquery.animate 및 jquery.scrolltop을 사용하여 컨텐츠를 수직 스크롤하십시오

하지만 그것은 바로, 예를 들어,

  1. 내가 번호 7,8에 도달 할 수있는 내용을 스크롤 할 때 나는 단지 숫자 5에 도달하기 위해 다시 이전 단계로 스크롤 할 수 없습니다, 6 그러나 위로 스크롤하여 번호 1,2에 도달합니다. 그것은 실수 번호 1, 2까지 도달 한 후

  2. 는, 내가 다시 more 버튼을 클릭하면 번호 8, 9에 도달 똑바로 스크롤합니다.

어떻게 해결할 수 있습니까? 여기

(function($){ 

    $.fn.extend({ 

     scroll_up_down: function(options) { 

      var defaults = { 
       associateScroller:   '.less', 
       scrollTarget:    '.items-thread', 
       scrollAmount:    40, 
       callback:      function() {} 
      } 

      var options = $.extend(defaults, options); 
      var o = options; 
      var scroll_amount = o.scrollAmount; 
      var associate_scroller = o.associateScroller 


      var $cm = this.click(function(e){ 

       // Set the varible. 
       var object = $(this); 
       var scroll_target = $(o.scrollTarget); 

       scroll_target.animate({scrollTop:scroll_amount}, 500); 

       scroll_amount += o.scrollAmount; 


       return false; 

      }); 

      var $cm_2 = $(associate_scroller).click(function(e){ 

       // Set the varible. 
       var scroll_target = $(o.scrollTarget); 

       scroll_target.animate({scrollTop:-scroll_amount}, 500); 
       scroll_amount -= o.scrollAmount; 


       return false; 
      }); 



     } 
    }); 

})(jQuery); 

답변

1

문제는 변수 scroll_amount이다, 플러그인 코드입니다. 우선, 네거티브를 전달하기 때문에 항상 맨 위로 스크롤됩니다. 스크롤 양. 당신은 그렇게하고 싶지 않습니다. 둘째로 스크롤링 양을 애니메이션보다 먼저 변경해야합니다. 보정, mrtsherman에 대한 너무 많은

http://jsfiddle.net/CxbYf/2/

scroll_amount = ...; 
scroll_target.animate({scrollTop:scroll_amount}, 500); 
+0

감사합니다. 방금 다른 문제가 생겼습니다 - 스크롤러가 콘텐츠의 맨 아래에 도달하면 'scroll_amount'가 증가하지 않도록하려면 어떻게해야합니까? 감사! – laukok

+0

죄송합니다. 스크롤러가 콘텐츠 상단에 있거나 콘텐츠 상단에 도달하면'scroll_amount'가 감소하지 않게하려면 어떻게해야합니까? 감사. – laukok

+1

증가 또는 감소시키기 전에'scroll_amount' 값을 확인해야합니다. 'scrollTarget [0] .scrollHeight'는 당신에게 상한선을 줄 것이고 하한선을 위해서'0'을 줄 것입니다. 이것은 작은 버그가 있지만, 지금 당신의 문제를 해결하기에 충분해야합니다. http://jsfiddle.net/CxbYf/4/ – mrtsherman

관련 문제