自动滚动DIV,但仅限用户,如果用户不滚动

时间:2014-10-21 07:00:18

标签: jquery html asp.net scroll

专家,

滚动div / panel时遇到问题。我开发了一个ASPX应用程序,在面板中显示一些消息。该面板是更新面板控件的子代。在其中,有一个计时器,它每秒更新一次消息显示并将面板滚动到底部。 在代码中抓住一个loog:

<asp:UpdatePanel ID="udpnlMessages" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <script type="text/javascript">

            function scrollPanelToBottom() {
                    $('#<%=pnlMessagesOverview.ClientID %>').scrollTop($('#<%=pnlMessagesOverview.ClientID %>')[0].scrollHeight);
            }

        </script>
        <asp:Timer runat="server" Interval="1000" ID="tmrCheckNewMessages" Enabled="True" OnTick="TmrCheckNewMessagesOnTick"></asp:Timer>
        <asp:Panel runat="server" ID="pnlMessagesOverview" CssClass="messageScrollPanel">

        </asp:Panel>
    </ContentTemplate>
</asp:UpdatePanel>

JS函数在我面板的prerender处理程序中注册。

    /// <summary>
    /// pre render handler
    /// </summary>
    /// <param name="sender">The sender.</param>
    /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
    protected void PnlMessagesOverviewOnPreRender(object sender, EventArgs e)
    {
        ScriptManager.RegisterStartupScript(
            this.pnlMessagesOverview,
            this.pnlMessagesOverview.GetType(),
            "scrollPanelToBottom",
            "scrollPanelToBottom();",
            true);
    }
到目前为止,工作正常。问题是:如果用户向上滚动,因为他正在阅读一些较旧的消息,这个JS会每秒将他踢到面板的底部。如果用户手动滚动,我必须阻止自动滚动。

并且:我不知道如何实现它。我尝试了一些JS滚动处理程序..但我找不到符合我想要的行为的解决方案...... :(

那里有谁可以帮助我?

0 个答案:

没有答案