본문 바로가기
SPA/React

[React] 리액트에서 Smooth Scrollbar 사용하기

by J4J 2021. 11. 20.
300x250
반응형

안녕하세요. J4J입니다.

 

이번 포스팅은 리액트에서 smooth scrollbar 사용하는 방법에 대해 적어보는 시간을 가져보려고 합니다.

 

 

 

Smooth Scrollbar 사용 방법

 

스크롤을 할 때 사용자들에게 보다 좋은 UI를 제공해주기 위해 smooth scrollbar을 사용하고는 합니다.

 

최근 리액트를 이용하여 개발하다가 smooth scrollbar를 적용했던 적이 있는 데 사용 방법에 대해 간단히 글을 남겨보고자 합니다.

 

 

 

[ 1. 패키지 설치 ]

 

$ npm install smooth-scrollbar

 

 

반응형

 

 

[ 2. App.jsx 파일 수정 ]

 

smooth scrollbar 적용을 위한 설정을 추가해보도록 하겠습니다.

 

또한 스크롤이 잘 되는지도 확인해봐야 되니 스크롤이 될  수 있도록 div들을 여러개 넣어보겠습니다.

 

import * as React from 'react';
import scrollbar from 'smooth-scrollbar';

// smooth scroll 설정
scrollbar.init(document.querySelector('#smooth-scroll'));

const App = () => {
    return (
        <>
            <div style={{backgroundColor: 'orange', height: '100vh', width: '100vw'}} />
            <div style={{backgroundColor: 'olive', height: '100vh', width: '100vw'}} />
            <div style={{backgroundColor: 'palegreen', height: '100vh', width: '100vw'}} />
            <div style={{backgroundColor: 'skyblue', height: '100vh', width: '100vw'}} />
        </>
    )
}

export default App;

 

 

 

[ 3. index.html 수정 ]

 

smooth scroll을 body에 적용시켜볼 거기 때문에 위의 설정에서 가져오는 #smooth-scroll이 body가 되도록 수정하겠습니다.

 

또한 추가 css를 적용시켜 정상동작되도록 해보겠습니다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /* smooth scroll이 정상 사용될 수 있도록 css 추가 */
        body {
            position: fixed !important;
            height: 100%;
            margin: 0;
            padding: 0;
        }
    </style>
</head>
<body id="smooth-scroll"> <!-- body에 smooth-scroll id 적용-->
    <div id="root"></div>
</body>
</html>

 

 

 

위와 같이 설정을 한 뒤 실행해보면 다음과 같이 부드럽게 스크롤이 되는 것을 확인해볼 수 있습니다.

 

실행 결과

 

 

 

 

참조

 

Smooth Scrollbar 공식 문서

YouTube - MOMENTUM Scrolling with Smooth-Scrollbar.js!

 

 

 

 

 

 

 

 

이상으로 리액트에서 smooth scrollbar 사용하는 방법에 대해 간단하게 알아보는 시간이었습니다.

 

읽어주셔서 감사합니다.

 

 

 

728x90
반응형

댓글