let's get IT with DAVINA ๐ป
prevent scroll event with MODAL (์คํฌ๋กค ๋ฐฉ์ง-๋ชจ๋ฌ์ฐฝ) ๋ณธ๋ฌธ
DEV_IN/React
prevent scroll event with MODAL (์คํฌ๋กค ๋ฐฉ์ง-๋ชจ๋ฌ์ฐฝ)
๋ค๋น์น์ฝ๋๐ 2023. 2. 17. 20:12์ ๊ฐ? ํ๋ก์ ํธ์ ์ ์๋ ์คํฌ๋กค๋ง ๋ฐฉ์ง์ ๋ํด ์ฌ๋ฌ ๊ฒ์๊ณผ ์ง์ธ์๊ฒ ๋ฌผ์ด๋ณธ ๊ฒฐ๊ณผ.. ์ข ๋ ํจ์จ์ ์ด๊ณ ์ง์ ๋ถํ์ง ์์ ์ฝ๋๋ฅผ ์์๋๋ค.
๋ชจ๋ฌ์ฐฝ์ ๋์ ์ ๋, ์คํฌ๋กค ๋ฐฉ์ง๋ฅผ ํ๊ณ -> ๋ชจ๋ฌ์ฐฝ์ ๋ซ์ผ๋ฉด ๋ค์ ์คํฌ๋กค ํ์ฑํ๋ฅผ ์ํค๋ ค๋ฉด
overflow:hidden ์์ฑ์ ์ด์ฉํ๋ฉด ๋๋ค!
- modal์ฐฝ์ ์ํ๋ฅผ useState๋ก ์ํ๊ฐ์ ์ง์ผ๋ณด๊ณ
- ๋ชจ๋ฌ์ฐฝ์ด ๋จ๋ฉด, scroll ์ํ๋ฅผ hidden์ผ๋ก ๋นํ์ฑํ์ํค๊ณ
- ๋ชจ๋ฌ์ฐฝ์ ๋ซ์ผ๋ฉด, hidden์ ๋ค์ ํ์ด์ฃผ๋ unset์์ฑ์ ์ค์ ์คํฌ๋กค์ ๋ค์ ํ์ฑํ์ํจ๋ค.
const [modal, setModal] = useState(false);
const handleModal = () => {
if (modal === false) {
setModal(true);
document.body.style.overflow = "hidden";
} else {
setModal(false);
document.body.style.overflow = "unset";
}
'DEV_IN > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
What is React? (3) | 2023.02.21 |
---|---|
ํน์ ๋ฒํผ์ ๋๋ ์ ๋๋ง, ์ด๋ฒคํธ ์ฃผ๊ธฐ (6) | 2023.02.17 |
window.open ์์ฐฝ(ํ์ ์ฐฝ) ์ด๊ธฐ (0) | 2023.02.09 |
ํ์ด์ง ์ด๋ ์, ์คํฌ๋กค ์๋จ ๊ณ ์ ํ๊ธฐ (2) | 2023.02.08 |
ํ ํ์ด์ง ๋ด์์ ๋ค๋ฅธ component๋ก ์ด๋ํ๊ธฐ (2) | 2023.02.08 |
Comments