我正在使用asp.net中的MaintainScrollPositionOnPostback
功能,因此页面回发页面的时间看起来就像是保持在同一位置。然而,当页面回发时,它是非常明显的。页面在顶部加载,然后跳转到之前的位置。有没有办法平滑这个,以便在页面加载时加载到前一个位置?
答案 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>
我只是快速测试了这个片段,可能需要更多调整。