let's get IT with DAVINA ๐ป
scroll prevent ๋ณธ๋ฌธ
ํ๋ก์ ํธ๋ฅผ ํ๋ฉฐ ๋ชจ๋ฌ์ฐฝ์ ๋์ธ ๋, spacebar์ ๋๋ฅผ๋๋ง๋ค ์๊พธ ์คํฌ๋กค์ด ๋ฐ์ํ์ฌ ๋ถํธํด์
๋ชจ๋ฌ์ฐฝ์ด ๋จ๋ฉด ์คํฌ๋กค ์์ฒด๊ฐ ์๋๊ฒ ๋ฐฉ์งํ๋๋ก ๊ตฌํํ๋ค.
- utils/useScrollPrevent.jsx
- ์ฌ๋ฌ ํ์ด์ง์ ์ฐ์ผ ์ ์๋ ๊ธฐ๋ฅ์ด๋ฏ๋ก util์ ๋ฐ๋ก ๋นผ์ฃผ์
import { useEffect } from "react";
const useScrollPrevent = () => {
useEffect(() => {
document.body.style.cssText = `
position: fixed;
top: -${window.scrollY}px;
overflow-y: scroll;
width: 100%;`;
return () => {
const scrollY = document.body.style.top;
document.body.style.cssText = "";
window.scrollTo(0, parseInt(scrollY || "0", 10) * -1);
};
}, []);
return;
};
export default useScrollPrevent;
- Components/LoginModal.jsx
- ์ํ๋ ํ์ด์ง ๋ฐ ์ปดํฌ๋ํธ๋ง๋ค ํ์ํ ๋ ๋ถ๋ฌ์์ ์ ์ฉ์ํค๊ธฐ
import useScrollPrevent from "../utils/useScrollPrevent";
export default function LoginModal({ isModal }) {
useScrollPrevent();
}
โโโ
JS์์ ์ฐ์ด๋ spacebar๋ฅผ ๋๋ ์ ๋, ์คํฌ๋กค ์ด๋ฒคํธ ๋ฐฉ์ง ๋ฐฉ๋ฒ์ ์ฐ๋ ค ํ์ ๋, ์ ์ฉ์ด ์๋๋ค..
๋ฌผ๋ก react์์ ๊ทธ๋๋ก ์ธ ์ ์๊ฒ ์ง๋ง.. ์์ ์๊ธฐ ๋ฐฉ๋ฒ์ฒ๋ผ ์คํฌ๋กค ์์ฒด๋ฅผ preventํ๋ ๊ฒ ๋ณด๋ค JS์์์ฒ๋ผ spacebar๋ฅผ ๋๋ ์ ๋์๋ง ์คํฌ๋กค ์ด๋ฒคํธ๋ฅผ ๋ฐฉ์ง์ํค๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ผ๊น๋..
์๋ ๋ถ ๊ณ์๋ฉด teach me plz..๐ฅบ
'Project > ์ ๊ฐ?' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก์ ํธ ๋ถ์ (1) | 2023.03.24 |
---|---|
ํต์ test (2) | 2023.02.21 |
๋ ๋ ์ง ์ฌ์ด ๊ณ์ฐ (0) | 2023.02.09 |
KakaoMap Api ์ ์ฉ (0) | 2023.02.09 |
button count ์กฐ์ /์ ํ (0) | 2023.02.09 |
Comments