【问题标题】:DIV with overflow: auto stop scrolling when content added带溢出的 DIV:添加内容时自动停止滚动
【发布时间】:2012-06-25 01:38:33
【问题描述】:

我在一个 asp:UpdatePanel 内有一个带有 style="overflow:auto" 的 DIV 容器,由 asp:Timer 触发

DIV 的内容每秒更新一次,但一旦内容溢出 div 的宽度和高度限制,DIV 会随着每次内容添加自动滚动回顶部;我希望它留在当前设置滚动的位置,或者更好地保持 DIV 的底部内容可见。

我尝试使用一些 javascript 来操作带有 scrollHeight 的 scrollTop,但它会创建一个不可用的 DIV 对象,因为自动滚动总是在发生。

我可以添加一些 javascript 以不自动向下滚动 onfocus,但这不会修复添加新内容时自动滚动到 DIV 内容顶部的问题。

我必须为所有 ajax 使用 ASP.NET 对象,但我有 jQuery 1.7(最新版本)来补充任何功能。

【问题讨论】:

  • 看看这是否有帮助:codeproject.com/Articles/30235/…
  • 我检查了第一个,它看起来更像是一个黑客,第二个链接@folex 似乎不适用于我正在做的事情,因为他们谈论整个页面,我处理在自动向上滚动的 DIV 中动态加载内容。谢谢!
  • 似乎如果 asp:UpdatePanel 在 div 内,当 UpdatePanel 内容动态更新时,div 的滚动位置不会重置。可以把UpdatePanel放到div里面吗?
  • 您可以随时禁用或启用,链接中只有方法。

标签: jquery asp.net scroll updatepanel ajaxcontroltoolkit


【解决方案1】:

您需要 _endRequest、_beginRequest 处理程序。在后面的代码中添加这个。

public object endRequestHandle { get; set; }

public object beginRequestHandle { get; set; }

在您的 aspx 页面中,添加以下内容:

Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequestHandle);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandle);
        function beginRequestHandle(sender, Args) {
           //call any function if you want before Ajax update/request begins
        }

        function endRequestHandle(sender, Args) {
         //Call the function to scroll the div all the way down
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多