event_wheel.rs 896 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. use dioxus::prelude::*;
  2. use dioxus_core::UiEvent;
  3. use dioxus_html::on::WheelData;
  4. fn main() {
  5. dioxus::desktop::launch(app);
  6. }
  7. fn app(cx: Scope) -> Element {
  8. let delta = use_state(&cx, || "".to_string());
  9. let container_style = r#"
  10. display: flex;
  11. flex-direction: column;
  12. align-items: center;
  13. "#;
  14. let rect_style = r#"
  15. background: deepskyblue;
  16. height: 50vh;
  17. width: 50vw;
  18. "#;
  19. let handle_event = move |event: UiEvent<WheelData>| {
  20. let wheel_data = event.data;
  21. delta.set(format!("{:?}", wheel_data.delta()));
  22. };
  23. cx.render(rsx! (
  24. div {
  25. style: "{container_style}",
  26. "Scroll mouse wheel over rectangle:",
  27. div {
  28. style: "{rect_style}",
  29. onwheel: handle_event,
  30. }
  31. div {"Delta: {delta}"},
  32. }
  33. ))
  34. }