[HTML/CSS] ํผ์นจ/์ ํ Transition ํจ๊ณผ์ ์์ ์จ๊น ๋ฐฉ์ ์ฐจ์ด์
์ํฉ ์ค๋ช ๋ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ
CSS์ transition
์์ฑ์ ์์์ ์ํ ๋ณํ์ ๋ฐ๋ฅธ ์๊ฐ์ ์ธ ๋ณํ๋ฅผ ์ ์ง์ ์ผ๋ก ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. ๊ทธ๋ฌ๋ display
์์ฑ์ด none
์์ block
์ผ๋ก ๋ณ๊ฒฝ๋ ๋๋ transition
์์ฑ์ ์ฌ์ฉํด์ ์ด ๋ณํ๋ฅผ ํํํ ์ ์๋ค.display: none
์์ฑ์ ๋ ๋ ํธ๋ฆฌ์์ ์์๋ฅผ ์์ ํ ์ ๊ฑฐํ์ฌ ํ๋ฉด์์ ์ฌ๋ผ์ง๊ฒ ๋ง๋ค๊ณ , ์ด๋ก ์ธํด ์ด๋ ํ CSS ์์ฑ๋ ์ ์ฉ๋์ง ์๋๋ค. ๋ ๋ ํธ๋ฆฌ์์ ์ฌ๋ผ์ง๋ฉด ์์์ ์ํ ๋ณํ๋ฅผ ์ถ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ transition
๋ณํ๊ฐ ์์๋๋ ์ง์ ์ญ์ ์ฐพ์ ์ ์๋ค.
์ด ๋ฌธ์ ๋ 2๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ ์ ์๋ค.
animation
+display
์ฌ์ฉ :animation
์์ฑ์ ์์์ ์ํ ๋ณํ์ ์๊ด์์ด ์ ๋๋ฉ์ด์ ์คํtransition
+visibility
์ฌ์ฉ :visibility
์์ฑ์ ๋ ๋ ํธ๋ฆฌ/๊ณต๊ฐ์ ์ ์งํ ์ฑ ํ๋ฉด์์๋ง ์จ๊น- ์ ๊ธฐ :
visibility: hidden; max-height: 0;
- ํผ์น๊ธฐ :
visibility: visible; max-height: 150px;
(๋ธ๋ผ์ฐ์ ๋์ด๋ฅผ ์ค์ด๋ฉด ๊ธ์๊ฐ ์ค๋ฐ๊ฟ ๋ผ์ ์์๊ฐ ๋์ด๋ฅผ ๋ ์ฐจ์งํ๊ฒ ๋๋ฏ๋กheight
๋์max-height
์์ฑ์ ์ฌ์ฉํ๋ค)
- ์ ๊ธฐ :
// transition + visibility ์ฌ์ฉ ์์ (Tailwind CSS)
function Accordion() {
const [showDetail, setShowDetail] = useState(false);
// ...
return (
<div
className={classnames("transition-all ease-linear duration-200", {
"invisible max-h-0 opacity-0 -mb-[13px]": !showDetail,
"max-h-[150px]": showDetail,
})}
>
<NoticeEntries />
</div>
);
}
์์ ์จ๊น ๋ฐฉ์ ์ฐจ์ด์
๋ ๋ ํธ๋ฆฌ | ๋ฆฌํ๋ก์ฐ | ๋ฆฌํ์ธํธ | ์ด๋ฒคํธ ํธ๋ค๋ฌ | DOM ํธ๋ฆฌ | |
display: none |
์ ์ธ | ๋ฐ์ | ๋ฐ์ | ๋นํ์ฑ | ์ ์ง |
visibility: hidden |
์ ์ง | ๋ฐ์ ์ํจ | ๋ฐ์ | ๋นํ์ฑ | ์ ์ง |
opacity: 0 |
์ ์ง | ๋ฐ์ ์ํจ | ๋ฐ์ | ํ์ฑ | ์ ์ง |
display: none
- ๋ ๋ ํธ๋ฆฌ : ์ ์ธ (๋ ๋ ํธ๋ฆฌ์์ ์์ ํ ์ ๊ฑฐ)
- ๋ฆฌํ๋ก์ฐ : ๋ฐ์ (๋ ๋ ํธ๋ฆฌ์์ ์ ์ธ๋์ผ๋ฏ๋ก ๋ ์ด์์ ์ฌ๊ณ์ฐ)
- ๋ฆฌํ์ธํธ : ๋ฐ์ (๊ฐ์์ฑ ๋ณํ๊ฐ ์๊ฒผ์ผ๋ฏ๋ก)
- ์ด๋ฒคํธ ํธ๋ค๋ฌ : ๋นํ์ฑ
- DOM ํธ๋ฆฌ : ์ ์ง (์๋ฐ์คํฌ๋ฆฝํธ๋ก ์กฐ์ ๊ฐ๋ฅ)
visibility: hidden
- ๋ ๋ ํธ๋ฆฌ : ์ ์ง (ํ๋ฉด์ ์๋ณด์ด์ง๋ง ๊ณต๊ฐ์ ์ฐจ์ง)
- ๋ฆฌํ๋ก์ฐ : ๋ฐ์ ์ํจ (๋ ์ด์์์ ์ํฅ์ ๋ฏธ์น์ง ์์ผ๋ฏ๋ก)
- ๋ฆฌํ์ธํธ : ๋ฐ์ (๊ฐ์์ฑ ๋ณํ๊ฐ ์๊ฒผ์ผ๋ฏ๋ก)
- ์ด๋ฒคํธ ํธ๋ค๋ฌ : ๋นํ์ฑ
- DOM ํธ๋ฆฌ : ์ ์ง (์๋ฐ์คํฌ๋ฆฝํธ๋ก ์กฐ์ ๊ฐ๋ฅ)
opacity: 0
- ๋ ๋ ํธ๋ฆฌ : ์ ์ง (ํ๋ฉด์ ์ ๋ณด์ด์ง๋ง ๊ณต๊ฐ์ ์ฐจ์ง)
- ๋ฆฌํ๋ก์ฐ : ๋ฐ์ ์ํจ (ํฌ๋ช ๋ ๋ณ๊ฒฝ์ ๋ ์ด์์์ ์ํฅ ์ ์ค)
- ๋ฆฌํ์ธํธ : ๋ฐ์ (ํฌ๋ช ๋๊ฐ ๋ณ๊ฒฝ๋์ผ๋ฏ๋ก)
- ์ด๋ฒคํธ ํธ๋ค๋ฌ : ํ์ฑ
- DOM ํธ๋ฆฌ : ์ ์ง (์๋ฐ์คํฌ๋ฆฝํธ๋ก ์กฐ์ ๊ฐ๋ฅ)
๊ธ ์์ ์ฌํญ์ ๋ ธ์ ํ์ด์ง์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๋ฐ์๋ฉ๋๋ค. ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์
'๐ช Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TS] ํ์ ์คํฌ๋ฆฝํธ ํ์ ๊ฐ๋ is / asserts ํค์๋ ์ฐจ์ด์ (0) | 2024.05.10 |
---|---|
[DevTools] ๊ฐ๋ฐ์ ์นํ์ ์ธ ํฐ๋ฏธ๋ LS โ PLS (0) | 2024.05.10 |
[HTML/CSS] ๊ตฌ๊ธ ํฐํธ ์ฌ์ฉ ๋ฐฉ๋ฒ / CSS์์ ์นํฐํธ ์ฌ์ฉํ๊ธฐ (0) | 2024.05.10 |
[DevTools] ๊ตฌ๊ธ ํฌ๋กฌ ๋์์ธ ๋ชจ๋ (Design Mode) (0) | 2024.05.10 |
[JS] Lodash Import ์ฉ๋ ์ค์ด๊ธฐ ํ (0) | 2024.05.10 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[TS] ํ์ ์คํฌ๋ฆฝํธ ํ์ ๊ฐ๋ is / asserts ํค์๋ ์ฐจ์ด์
[TS] ํ์ ์คํฌ๋ฆฝํธ ํ์ ๊ฐ๋ is / asserts ํค์๋ ์ฐจ์ด์
2024.05.10 -
[DevTools] ๊ฐ๋ฐ์ ์นํ์ ์ธ ํฐ๋ฏธ๋ LS — PLS
[DevTools] ๊ฐ๋ฐ์ ์นํ์ ์ธ ํฐ๋ฏธ๋ LS — PLS
2024.05.10 -
[HTML/CSS] ๊ตฌ๊ธ ํฐํธ ์ฌ์ฉ ๋ฐฉ๋ฒ / CSS์์ ์นํฐํธ ์ฌ์ฉํ๊ธฐ
[HTML/CSS] ๊ตฌ๊ธ ํฐํธ ์ฌ์ฉ ๋ฐฉ๋ฒ / CSS์์ ์นํฐํธ ์ฌ์ฉํ๊ธฐ
2024.05.10 -
[DevTools] ๊ตฌ๊ธ ํฌ๋กฌ ๋์์ธ ๋ชจ๋ (Design Mode)
[DevTools] ๊ตฌ๊ธ ํฌ๋กฌ ๋์์ธ ๋ชจ๋ (Design Mode)
2024.05.10