Keyboard shortcuts

Press โ† or โ†’ to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Scroll RS

Edit Component

Y Scroll RS Yew Usage

Adding Scroll-RS to your project is simple:

  1. Make sure your project is set up with Yew. Refer to their Getting Started Guide for setup instructions.

  2. Add scroll-rs to your dependencies:

    cargo add scroll-rs --features=yew
    
  3. Import Scroll into your component and start enhancing your appโ€™s scroll functionality.

๐Ÿ› ๏ธ Usage

Below is an example of how to integrate scroll-rs into your Yew app:

use scroll_rs::yew::Scroll;
use scroll_rs::Behavior;
use yew::prelude::*;

#[function_component(Home)]
pub fn home() -> Html {
    html! {
        <div class="min-h-screen bg-gray-900 text-white p-8">
            <h1 class="text-4xl font-bold text-center mb-8">{ "Scroll-RS Demo" }</h1>

            // Scrollable content
            <div id="top" class="h-96 bg-gray-700 p-8 text-center">
                <h2 class="text-3xl font-bold">{ "Top of the Page" }</h2>
                <p>{ "Scroll down to see buttons in action!" }</p>
            </div>

            <div id="bottom" class="h-96 bg-gray-800 p-8 text-center">
                <h2 class="text-3xl font-bold">{ "Bottom of the Page" }</h2>
                <p>{ "You reached the bottom!" }</p>
            </div>

            // Scroll components
            <Scroll
                style="position: fixed; bottom: 2rem; right: 2rem; background: #10B981; padding: 1rem; border-radius: 50%;"
                icon={html! { <span>{"โ†‘"}</span> }}
                scroll_id="top"
            />
            <Scroll
                style="position: fixed; bottom: 2rem; left: 2rem; background: #F59E0B; padding: 1rem; border-radius: 50%;"
                icon={html! { <span>{"โ†“"}</span> }}
                scroll_id="bottom"
            />
        </div>
    }
}

๐Ÿ”ง Props

PropertyTypeDescriptionDefault
style&'static strInline CSS styles for the scroll button.Default styling
class&'static strCustom CSS classes for styling the button.None
iconHtmlCustom icon (HTML/SVG) for the scroll button.Default SVG
behaviorBehaviorScrolling behavior: Smooth, Instant.Smooth
topf64Target top position for scrolling.0.0
leftf64Target left position for scrolling (horizontal scrolling).0.0
offsetf64Offset to apply when scrolling to the target position.0.0
delayu32Delay (in ms) before initiating the scroll.0
auto_hideboolWhether to hide the button automatically based on scroll position.true
thresholdf64Scroll threshold to determine button visibility.20.0 px
update_hashboolWhether to update the URL hash during scrolling.true
show_id&'static strID of the target element for the scroll button visibility logic.None
scroll_id&'static strID of the target container to scroll to.None

Usage

CLI Usage

You can import Scroll RS directly into your project to customize and modify it using the opensass cli:

os add scroll-rs yew