scroll_to_top.rs 766 B

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