2013-06-04 2 views
2

나는 'divEventScroll'이라는 스크롤 가능한 div가 있습니다. javascript/jquery를 사용하여이 div에 데이터가 추가되면 스크롤 막대가 같은 위치에 머무르는 것으로 예상됩니다. 즉 scrollTop()은 동일하게 유지됩니다.맥북에서 스크롤 이벤트 시작을 감지했습니다.

iOS 버전 5 이하의 iOS 기기에서와 같이 완벽하게 작동합니다. 그러나 iOS6 +에서는 스크롤이 감지 되 자마자 div가 div 시작 부분으로 스크롤됩니다.

ios 6.0.1이 적용된 iPad3에서이 문제가 해결되었습니다. (좋은 방법은 아닙니다.)

그러나 스크롤 관성 이벤트가 트리거 된 후에 만 ​​스크롤을 감지하므로 맥북에서 작동하지 않는 것 같습니다.

내가 아이 패드에 사용했던 코드입니다 (그것을 작동)

$('body').on('touchmove',function(e){ 
    if(navigator.userAgent.match(/(iPad|Version\/6.0)/gi)){ 
     if($('#divEventScroll').has($(e.target)).length && fromNextEvents){ 
      if($('#divEventScroll').scrollTop()<scrollPos){ 
        fromNextEvents=false; 
         $('#divEventScroll').scrollTop(scrollPos);     
      } 
     } 
    } 
}); 

내가 맥북 프로에 사용한 코드는 (i가 그것을 기대 때 트리거되지 않습니다)

$('body').scroll(function(){ 
    if(navigator.userAgent.match(/(Macintosh&Version\/6.0)/gi)){ 
     if(fromNextEvents){ 
      if($('#divEventScroll').scrollTop()<scrollPos){ 
       fromNextEvents=false; 
       $('#divEventScroll').scrollTop(scrollPos);  
      } 
      } 
     } 
}); 

정말 도움이 되겠습니까?

EDIT : fromNextEvents는이 코드가 작동하는 시나리오에서 true로 설정됩니다.

EDIT2 : 나는 너무 명확하지 않다는 것을 알고 있습니다. (AT ALL! 내가 이것을 추가하는 것을 잊어 버렸습니다.) 정상적으로 스크롤하는 대신 하단에서 추가 된 내용을보기 위해 div를 아래로 스크롤하기 시작하면 div가 오른쪽 위로 쏘고 아래로 계속 스크롤합니다. 그곳에. 이상한이다 :. S

답변

0

사용 $ (창) .scroll 대신 $ ('몸')의

http://flesler.com/jquery/scrollTo/

가 도움이

샘플 코드 수 있습니다 스크롤합니다. .. 나뿐만 아니라 몸, 문서, 심지어 #divEventScroll 그 것을 시도했습니다

$ (문서) .ready (함수() {

var sidebar = $('#sidebar_content'); 
    var top = sidebar.offset().top - parseFloat(sidebar.css('marginTop')); 

    $(window).scroll(function (event) { 
     var ypos = $(this).scrollTop(); 
     if (ypos >= top) { 
      sidebar.addClass('fixed'); 
     } 
     else { 
      sidebar.removeClass('fixed'); 
     } 
    }); 


}); 
+0

을 : 당신의 요구 사항을하지만 도움이 될 희망과 관련이없는 있지만 작동하지 않습니다 : ( – imbecile

+0

아니 형제, 이것은 내가 무엇을 찾고있는 것이 아닙니다. 나는 내가 원하는 것을 반영하기 위해 q를 편집했으며, 그것이 더 명확 할 것으로 기대하고 있습니다. – imbecile