Support scrollIntoView alignment options (#3952)
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
This commit is contained in:
1 parent
85b373deff
commit
28d38307a2
7 files changed
+79
-19
No files matched your search
@@ -66,17 +66,25 @@ impl dioxus_html::RenderedElementBacking for Synthetic<web_sys::Element> {
|
||||
|
||||
fn scroll_to(
|
||||
&self,
|
||||
behavior: dioxus_html::ScrollBehavior,
|
||||
input_options: dioxus_html::ScrollToOptions,
|
||||
) -> std::pin::Pin<Box<dyn std::future::Future<Output = dioxus_html::MountedResult<()>>>> {
|
||||
let options = web_sys::ScrollIntoViewOptions::new();
|
||||
match behavior {
|
||||
dioxus_html::ScrollBehavior::Instant => {
|
||||
options.set_behavior(web_sys::ScrollBehavior::Instant);
|
||||
}
|
||||
dioxus_html::ScrollBehavior::Smooth => {
|
||||
options.set_behavior(web_sys::ScrollBehavior::Smooth);
|
||||
}
|
||||
}
|
||||
options.set_behavior(match input_options.behavior {
|
||||
dioxus_html::ScrollBehavior::Instant => web_sys::ScrollBehavior::Instant,
|
||||
dioxus_html::ScrollBehavior::Smooth => web_sys::ScrollBehavior::Smooth,
|
||||
});
|
||||
options.set_block(match input_options.vertical {
|
||||
dioxus_html::ScrollLogicalPosition::Start => web_sys::ScrollLogicalPosition::Start,
|
||||
dioxus_html::ScrollLogicalPosition::Center => web_sys::ScrollLogicalPosition::Center,
|
||||
dioxus_html::ScrollLogicalPosition::End => web_sys::ScrollLogicalPosition::End,
|
||||
dioxus_html::ScrollLogicalPosition::Nearest => web_sys::ScrollLogicalPosition::Nearest,
|
||||
});
|
||||
options.set_inline(match input_options.horizontal {
|
||||
dioxus_html::ScrollLogicalPosition::Start => web_sys::ScrollLogicalPosition::Start,
|
||||
dioxus_html::ScrollLogicalPosition::Center => web_sys::ScrollLogicalPosition::Center,
|
||||
dioxus_html::ScrollLogicalPosition::End => web_sys::ScrollLogicalPosition::End,
|
||||
dioxus_html::ScrollLogicalPosition::Nearest => web_sys::ScrollLogicalPosition::Nearest,
|
||||
});
|
||||
self.event
|
||||
.scroll_into_view_with_scroll_into_view_options(&options);
|
||||
|
||||
|
||||
Reference in new issue
Block a user