2017-02-21 1 views
0

asp.net에서 MaintainScrollPositionOnPostback 기능을 사용하고 있으므로 페이지가 다시 게시 될 때 동일한 위치에있는 것처럼 보입니다. 그러나 페이지가 다시 게시되면 매우 눈에.니다. 페이지가 맨 위에서로드 된 다음 이전 위치로 점프합니다. 페이지가로드 될 때 이전 위치로로드되도록이 작업을 부드럽게하는 방법이 있습니까?스크롤 위치를 원활하게 유지하는 방법

+0

포스트 백을 완전히 제거하고 대신 AJAX를 사용하여 페이지가 실제로 언로드되지 않았습니까? – mason

답변

0

자신 만의 기능을 만들어 이전 위치로 부드럽게 스크롤 할 수 있습니다. 일반적으로 Y 위치는 숨겨진 필드 __SCROLLPOSITIONY에 저장됩니다. 그러나 MaintainScrollPositionOnPostback을 비활성화하면이 양식 필드도 사라집니다.

그래서 자신의 HiddenField을 만들고 거기에 위치를 저장하십시오. 그런 다음 포스트 백 이후에 그 값을 읽고 스크롤 할 수 있습니다.

<asp:HiddenField ID="HiddenField1" runat="server" /> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('html,body').animate({ 
      scrollTop: $("#<%= HiddenField1.ClientID %>").val() 
     }); 
    }); 

    $(document).mousemove(function (e) { 
     $("#<%= HiddenField1.ClientID %>").val(e.pageY) 
    }); 
</script> 

이 스 니펫을 신속하게 테스트 했으므로 조정이 더 필요할 수도 있습니다.

관련 문제