leptos-use/examples/use_element_visibility/src/main.rs

34 lines
950 B
Rust
Raw Normal View History

2023-07-03 16:10:58 +01:00
use leptos::html::Div;
2023-06-11 01:01:54 +01:00
use leptos::*;
use leptos_use::docs::{demo_or_body, BooleanDisplay, Note};
use leptos_use::use_element_visibility;
#[component]
2023-07-27 18:06:36 +01:00
fn Demo() -> impl IntoView {
let el = create_node_ref::<Div>();
2023-06-11 01:01:54 +01:00
2023-07-27 18:06:36 +01:00
let is_visible = use_element_visibility(el);
2023-06-11 01:01:54 +01:00
2023-07-27 18:06:36 +01:00
view! { <div>
2023-06-11 01:01:54 +01:00
<Note class="mb-4">"Info on the right bottom corner"</Note>
<div node_ref=el class="max-w-lg relative area dark:bg-gray-800 shadow-lg z-60">
"Target Element (scroll down)"
</div>
</div>
<div class="float m-5 area shadow-lg">
"Element "
<BooleanDisplay value=is_visible true_str="inside" false_str="outside" class="font-bold"/>
" the viewport"
</div>
}
}
fn main() {
_ = console_log::init_with_level(log::Level::Debug);
console_error_panic_hook::set_once();
2023-07-27 18:06:36 +01:00
mount_to(demo_or_body(), || {
view! { <Demo /> }
2023-06-11 01:01:54 +01:00
})
}