jQuery scrollTop 函数先向下然后动画到顶部

Posted

技术标签:

【中文标题】jQuery scrollTop 函数先向下然后动画到顶部【英文标题】:jQuery scrollTop function goes down first and then animates to top 【发布时间】:2015-07-19 23:41:22 【问题描述】:

如果在回发按钮单击时出现错误,我想滚动到顶部。我正在研究 asp.net C#。我正在使用以下方法滚动到顶部。

page_load 方法上的.cs 代码

if (IsPostBack)

    System.Web.UI.ScriptManager.RegisterStartupScript(Page, this.GetType(), "ScrollPageLogin", "ResetScrollPositionLogin();", true);

jquery 调用的.ascx 代码

function ResetScrollPositionLogin()

   $('html, body').animate( scrollTop: 0 , 'fast');

当我使用此代码并单击登录按钮时,它首先向下滚动,然后向上滚动。请帮我解决这个问题。

【问题讨论】:

没有滚动变化的页面位置在哪里?如果您取出动画,页面位置已经在顶部,还是在某处的“#”链接位置? 默认页面位置是页面中间。因此,当我将页面位置设置为顶部时,它首先变为默认值,然后动画到顶部。 您希望页面跳过中间部分,只加载页面顶部的视图,? 是的。当我点击登录链接时,如果回发时出现任何错误,我想将页面滚动到顶部,以便用户可以看到错误。 测试一些东西。现在跳过 jquery。只需将 window.addEventListener('load',function()document.documentElement.scrollTo(0,0)) 添加到头部的脚本标记中,看看会发生什么(除非您使用 ajax,否则不要使用窗口加载使用您的 ajax 成功/失败方法)。 【参考方案1】:

嗯,许多浏览器都有智能冲浪功能,这意味着它们可以记住页面位置和表单输入等内容,而无需被告知。一些at stack already 已经解决了这个问题

另一种非常老套的做法是将页面正文设置为 display:none,然后使用 jquery show() 或纯 javascript 将显示设置为在内容加载后阻止。隐藏页面位置的任何跳跃,但至少可以说不是理想的设计。

【讨论】:

以上是关于jQuery scrollTop 函数先向下然后动画到顶部的主要内容,如果未能解决你的问题,请参考以下文章

使用jQuery确认和scrollTop导致页面向上滚动然后向下滚动

是否可以使用 jQuery 为 scrollTop 设置动画?

jquery 让DIV相当于body定位,然后随滚动条向下滚动

Opera 错误上的 jQuery 动画滚动顶部

jQuery控制页面滚动条上下滚动

jQuery offset()函数 和 scrollTop()函数