Javascript๋ฅผ ์ด์ฉํด ์ฐฝ์ ๊ฐ๋ก ๊ธธ์ด์ ๋ฐ๋ผ ๋ฐฐ๊ฒฝ ์์์ด ๋ฌ๋ผ์ง๋ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํด๋ณด์.
Use if/else etc.
window
์ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ฐฐ๊ฒฝ ์์์ ์ง์ ํ ๋, if,else if,else
๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์ธ๊ฐ์ง ์์์ ํํํ๋๋ก ํ์๋ค.
const bd = document.querySelector("body");
๋ฅผ ํตํด body
๋ฅผ ํธํ๊ฒ ์ฐ๋๋ก ์ง์ ํ์๋ค.
๊ธฐ๋ฅ๋ณ๋ก ๋๋์ด ๊ตฌ์ํ์ฌ, ํ์ํ ํจ์๋ ํ์ด์ง ๋ก๋์, ๊ฐ์ฅ ๋จผ์ ์คํ๋๋ init()
๊ณผ window
์ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒ์ ๊ฐ์งํ์ฌ ๋ฐ์ํ๋ ํจ์ handleResize(event)
๋๊ฐ์ด๋ค. ๋ ํจ์๋ฅผ ์ ์ธํ์ฌ Divide ํด์ฃผ์๋ค.
ํ์ด์ง ๋ก๋์ ์คํ๋๋ init()
์๋ ์ฌ์ด์ฆ๊ฐ ๋ณ๊ฒฝ๋๋ event๋ฅผ ๊ฐ์งํ๋ event handler๋ฅผ ์ถ๊ฐํด์ฃผ์๋ค. MDN์ window ํญ๋ชฉ์ ์ฐธ๊ณ ํ์ฌ, window
๊ฐ ํด๋น ํญ๋ชฉ ๊ฐ์ง๋ฅผ ์ํด ํ์ํ element์ด๊ณ , "resize" event๋ฅผ ๊ฐ์งํด์ผ ํ๋ค๋ ๊ฒ์ ํ์ธํ๋ค.
window.addEventListener("resize", handleResize);
๋ฐ๋ผ์ init()
ํจ์์ ๋ด๋ถ๋ฅผ ์์ ๊ฐ์ด ์์ฑํ๋ค.
window
์ event listener๊ฐ ์ถ๊ฐ๋์ด, "resize" event ๋ฐ์์ handleResize(event)
ํจ์๊ฐ ์คํ๋๊ธฐ ๋๋ฌธ์, ํด๋น ํจ์์ ๋ด์ฉ์ ํตํด ์ํ๋ ๊ธฐ๋ฅ ("์ฐฝ์ ๊ฐ๋ก ๊ธธ์ด์ ๋ฐ๋ผ ๋ฐฐ๊ฒฝ ์์์ด ๋ฌ๋ผ์ง๋") ์ ๊ตฌํํ ์ ์๋ค. ๊ทธ๋ฌ๊ธฐ ์ํด์๋ ๋ด๊ฐ ์๊ณ ์ํ๋ ์ฐฝ์ ๊ฐ๋ก ๊ธธ์ด๊ฐ ์ด๋ค ์์ฑ์ธ์ง ํ์ธํด์ผํ๋ค. MDN์ window.innerWidth๋ฅผ ํตํด, ์ํ๋ ๊ฐ์ด innerWidth
์ธ์ง ํ์ธํ๊ธฐ ์ํ์ฌ
let size = window.innerWidth;
console.log(size)
๋ฅผ handleReszie(event)
์ ๋ด๋ถ์ ์์ฑํด์ฃผ๊ณ ์ฐฝ์ ๋์ด๋ฅผ ๊ณ์ ๋ฐ๊ฟ์ฃผ์,
์ ์ฌ์ง๊ณผ ๊ฐ์ด ๊ณ์ํด์ ๋์ ์ฐฝ์ ๋์ด๊ฐ ์ถ๋ ฅ๋จ์ ํ์ธํ์๋ค. ๊ณต์ ๋ฌธ์์์์ ํ์ธํ ์ ์๋ฏ, integer value
๋ฅผ return
ํ๊ธฐ ๋๋ฌธ์ ํด๋น ๊ฐ์ ๋ฐ๋ก ๋น๊ตํ๋ฉด ๋๋ค.
function handleResize(event) {
let size = window.innerWidth;
if (size < 400) {
bd.style.backgroundColor = "deepskyblue";
} else if (size < 600) {
bd.style.backgroundColor = "blueviolet";
} else {
bd.style.backgroundColor = "orange";
}
}
๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ ํ, ์คํํด๋ณด๋ฉด ์ ์์ ์ผ๋ก ์๋ํจ์ ํ์ธํ ์ ์๋ค.