如何保持滚动位置平滑

时间:2017-02-21 14:58:56

标签: asp.net

我正在使用asp.net中的MaintainScrollPositionOnPostback功能,因此页面回发页面的时间看起来就像是保持在同一位置。然而,当页面回发时,它是非常明显的。页面在顶部加载,然后跳转到之前的位置。有没有办法平滑这个,以便在页面加载时加载到前一个位置?

1 个答案:

答案 0 :(得分:0)

您可以创建自己的功能,使滚动到上一个位置平滑。通常,Y位置存储在隐藏字段__SCROLLPOSITIONY中。但是当您停用MaintainScrollPositionOnPostback时,此表单字段也会消失。

所以创建一个自己的HiddenField并在那里存储位置。然后在PostBack之后,您可以读取该值并滚动到它。

<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>

我只是快速测试了这个片段,可能需要更多调整。