3

데이터 목록을 표시하려면 jQuery-mobile을 사용하고 있습니다. 목록은 ~ 3000px 정도로 꽤 높을 수 있습니다. 내 Samsung G S5에서 볼 수있는 문제는 전화를 돌릴 때 목록보기의 스크롤 위치가 사라지고 맨 위에 위치합니다.jQuery Mobile - 기기 방향 변경시 스크롤 위치를 유지 하시겠습니까?

// This block is to handle the device rotating when viewing the list 
    $(window).on('scrollstop', function() { 
     if ($.mobile.activePage.attr('id') == 'pageBeingViewed') { 
      self.currentScroll = $(window).scrollTop(); 
     }    
    }); 
    $(window).on("orientationchange", function (event) { 
     if ($.mobile.activePage.attr('id') == 'pageBeingViewed') { 
      console.log('Scroll Pos:'+self.currentScroll); 
      $(window).scrollTop(self.currentScroll); // also tried using the jQM silent scroll method here as well. No luck.  
     }   
    }); 

논리적으로,이 작업을해야합니다

나는이 다음하지만 작동시킬 수 없습니다하려고 노력했습니다. 즉석에서 스크롤 위치를 캡처하므로 장치를 회전 할 때 스크롤 위치가 원래 위치로 되돌아 가야합니다. 하지만 내 인생이 왜 효과가 없는지 알 수는 없습니다. 누구든지 아이디어/제안이 있습니까?

+0

반응 형 그리드 (또는 다른 미디어 쿼리)를 사용하고 있습니까? 그렇다면 페이지가 세로 모드에서 더 커지고 스크롤 위치가 한 모드에서 다른 모드로 직접 적용되지 않습니다. –

+0

이것은 단지 기본 jQM listview 플러그인입니다. 여기에는 추가적인 복잡성이 없습니다. 그것은 단지 간단한 목록을 표시하려고합니다. 스크롤 위치가 다르기 때문에 그냥 닫아야합니다. 누구나 해결 방법이 있다면 계산을 조정할 수 있습니다. 걱정하지 않아도됩니다. – gabaum10

+0

또한 기록을 위해 jQM 팀과 함께 문제를 열었습니다. https://github.com/jquery/jquery-mobile/issues/7784. 이것은 실제로 내부 버그이며 그와 같이 수정해야합니다. 그러나 중간에 나는 해결 방법을 찾을 수 있기를 희망했습니다. – gabaum10

답변

0

divs을 확인하고 firebug을 확인하고 스크롤바가있는 요소가 있는지 확인하십시오. 때때로 body, pageui-content100% 높이로 설정되어 스크롤 막대가 ui-content div로 끝나는 경우가 있습니다. 이 경우 스크롤바가있는 div의 scrollTop()에 직접 액세스하여 문제를 해결할 수 있습니다.