You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Streamlit点击按钮实现页面滚动到底部的问题求助

Streamlit点击按钮实现页面滚动到底部的问题求助

我现在遇到个Streamlit的小难题:想实现点击按钮后让页面自动滚动到底部。

我之前试过相关的实现思路,但实际跑起来不管用。我自己写了下面这段代码尝试:

st.session_state['dummy_counter'] += 1
st.markdown(
    """
    <div id="end"></div>
    """,
    unsafe_allow_html=True
)
st.components.v1.html(f"""
    <script>
        console.log('check');
        var count = {st.session_state['dummy_counter']};
        var element = document.getElementById("end");
        if (element)  {{
            element.scrollIntoView({{behavior: "smooth"}});
            console.log('check2');
        }}
    </script>
""",height=1)

奇怪的是,这段代码直接在浏览器控制台执行的时候是能正常滚动的,但放到Streamlit里就不行了。我排查后发现,在Streamlit里执行到var element = document.getElementById("end");这一行时,拿到的element是null——明明页面里已经渲染出了<div id="end"></div>这个元素。我还特意加了定时器测试,确认不是页面加载慢的问题。

有没有更简单的实现方法?或者有没有大佬能帮我看看这段代码哪里出问题了?感谢!

备注:内容来源于stack exchange,提问作者Vladimir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 15:54:37