2017-02-21 32 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> 

私はこのスニペットをすばやくテストしましたが、調整が必要なことがあります。

関連する問題