scroll_to_top.rs 727 B

12345678910111213141516171819202122232425262728293031
  1. use dioxus::prelude::*;
  2. fn main() {
  3. dioxus_desktop::launch(app);
  4. }
  5. fn app() -> Element {
  6. let mut header_element = use_signal(|| None);
  7. rsx! {
  8. div {
  9. h1 {
  10. onmounted: move |cx| header_element.set(Some(cx.inner().clone())),
  11. "Scroll to top example"
  12. }
  13. for i in 0..100 {
  14. div { "Item {i}" }
  15. }
  16. button {
  17. onclick: move |_| async move {
  18. if let Some(header) = header_element.cloned() {
  19. let _ = header.scroll_to(ScrollBehavior::Smooth).await;
  20. }
  21. },
  22. "Scroll to top"
  23. }
  24. }
  25. }
  26. }