Scrolling to the top

I am trying to add a button to scroll to the top. Something like:

import streamlit as st
import time

st.write('meow ' * 10_000)

js = '''
<script>
    var body = window.parent.document.querySelector(".main");
    console.log(body);
    body.scrollTop = 0;
</script>
'''

if st.button("Back to top"):
    temp = st.empty()
    with temp:
        st.components.v1.html(js)
        time.sleep(.5) # To make sure the script can execute before being deleted
    temp.empty()

However, it is not scrolling to the top. It reruns the page but stays in the same place. Does someone know how to achieve this?

Edit: I’m using version 1.39.0 and python 3.11.4

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.