GithubHelp home page GithubHelp logo

Comments (2)

umang-bhatt avatar umang-bhatt commented on April 20, 2024

@kajweb
Try this to achieve the same behaviour as expected in vanilla script

import "../App.css";
import { useRef, useEffect, useState } from "react";

export default function Scroller() {
    const [data, setData] = useState("");

    const ref = useRef(null);
    const [scrollPosition, setScrollPosition] = useState(0);

    useEffect(() => {
        ref.current.scrollTop = scrollPosition;
    }, [scrollPosition]);


    const changeText = (type) => {
        setData(
            [
                ...Array(
                    {
                        S: 1,
                        M: 1000,
                        L: 5000,
                        LP: 5000
                    }[type]
                )
            ]
                .map((i) => type)
                .join(" ")
        );
        setScrollPosition(ref.current.scrollTop);
    }

    return (
        <div>
            <div className="flex items-center justify-center">
                <div
                    style={{
                        height: 600,
                        width: 300,
                        border: "1px solid #ccc",
                        overflow: "auto"
                    }}
                    ref={ref}
                >
                    {data}
                </div>
            </div>

            <div className="flex gap-2">
                {/* <button onClick={() => changeText("S")}>S</button> */}
                <button onClick={() => changeText("M")}>M</button>
                <button onClick={() => changeText("L")}>L</button>
                <button onClick={() => changeText("LP")}>LP</button>
            </div>
        </div>
    );
}

Hope this helps !

from react.

kajweb avatar kajweb commented on April 20, 2024

It worked.

from react.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.