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
相关产品推荐
相关产品推荐

