๋ฌธ์ ์ด๋ฒคํธ ์์(Event Delegation)์ ์ํด ์ต์์ ๋ถ๋ชจ ์ปจํ ์ด๋์ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ๋ฐ์ธ๋ฉํด์ค ๊ฒฝ์ฐ ํด๋น ์์ ๋ด๋ถ์ ์์ ์์๋ค์ด ๋ ํ๋ฒ ๋ถ๋ชจ(ParentElem)-์์(ChildElem) ๊ด๊ณ๋ฅผ ์ด๋ฃจ๊ณ ์๊ณ ๋ ์์๊ฐ ๋ ์ด์์ ์ ์์ ํ ๊ฒน์ณ์ ธ ์์ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋ค. ์๋ฅผ ๋ค์ด click ์ด๋ฒคํธ๋ฅผ ์๊ฐํด๋ณด์. ParentElem์์ click ์ด๋ฒคํธ์ ๋ํ ํ์ ์ฒ๋ฆฌ๋ฅผ ํ๊ณ ์ถ์ง๋ง ์น ์์์ ChildElem์ด wrapper์ธ ParentElem๊ณผ ์์น ๊ฐ์ด ๊ฒน์ณ์ ธ ์๊ณ ํฌ๊ธฐ๊ฐ ๊ฐ์ ๊ฒฝ์ฐ์๋ ParentElem์ด ์๋ ChildElem์ด ๊ณ์ํด์ ์ ํ์ด ๋์ด ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ง ๋ชปํ ์ ์๋ค. /h1> p> (...) ๋ค์๊ณผ ๊ฐ์ด ๋ชจ๋ ์์๋ฅผ ๊ฐ์ธ๋ container์ธ leafl..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ciYvph/btrhdB4JWVR/d7W70l0LR060DIdK6l63HK/img.gif)
๋ฌธ์ window.addEventListener('scroll', () => { box.style.width = `${window.pageYOffset}px`; }); ๋ค์๊ณผ ๊ฐ์ด ์คํฌ๋กค๋ Window.pageYoffset๊ฐ ๋งํผ ์์์ ๋ฐ์ค ์์์ ๊ฐ๋ก ๋๋น๋ฅผ ๋์ ์ผ๋ก ๋์ด๋๊ฒ ์ฝ๋๋ฅผ ์์ฑํ์๋ค. ํ๋ฉด์ ๋๋๋ง๋ ์์์ ๋ฐ์ค์ ๊ฐ๋ก ๋๋น๊ฐ ๋์ด๋๋ ์ ๋๋ฉ์ด์ ํจ๊ณผ๋ ์ธ๋ป ๋ณด๋ฉด ์์ฐ์ค๋ฌ์ด ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ์คํฌ๋กค์ ๋ฐฉํฅํค๋ฅผ ํตํด ๋ด๋ ค๋ณธ๋ค๋ฉด ๋ค์ ๋ถ์์ฐ์ค๋ฝ๊ฒ ๋๊ธฐ๋ ๊ฑฐ๋ฅผ ํ์ธํ ์ ์๋ค. ์ด๋ฌํ ํ์์ ํด๊ฒฐํ๊ธฐ ์ํด์ requestAnimationFrame์ ๋์ ์๋ฆฌ๋ฅผ ์ดํด๋ณด๊ณ ๊ตฌํํด ๋ณด๊ณ ์ ํ๋ค. requestAnimationFrame https://developer.mozilla.org/ko/docs/..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/vdYcg/btrgV9uUXEc/XsJggLGGwTlCiq4exzKsU0/img.png)
๊ธฐ์ด์ ์ธ ๋ด์ฉ์ด์ง๋ง ๋งํฌ์ ์์์ ๊ฐ์ฅ ์ค์ํ position ์์ฑ์ ๋ํด์ ์งง๊ฒ ํฌ์คํ ํ๊ณ ์ ํ๋ค. ์์น๊ฐ ์ ์ ์ธ ๊ฒฝ์ฐ relative, absolute, fixed๋ฅผ ์๊ธฐ ์ํด์๋ ์ฐ์ ์ ์ผ๋ก ๊ธฐ๋ณธ ์ํ์ธ static์ ๋ํด์ ์ค๋ช ํ ํ์๊ฐ ์๋ค. static ๋ชจ๋ ํ๊ทธ๋ค์ ์ฒ์ ์ํ๊ฐ static ๊ธฐ๋ณธ ์ํ์ด๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก position์ ์ง์ ํด์ฃผ์ง ์์๋ ๋จ ์ฐจ๋ก๋๋ก ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ, ์์์ ์๋๋ก ์์ ์์น๊ฐ ๋์ ์ธ ๊ฒฝ์ฐ ์์ ์ดํด ๋ณธ static์ ๋ณ๋์ ๋ณ๊ฒฝ ์์ด ์์๊ฐ ๊ทธ๋๋ก ์์๋๋ก ์์ด๋ ๋ฐ๋ฉด์ ์๋ 3๊ฐ์ position๋ค์ ์ฌ์ฉ์๊ฐ ์์์ ์์น ๊ฐ(top, right, bottom, left)์ ์ง์ ํด์ค์ผ ํ๋ค. relative ๋ณ๋์ ํ๋กํผํฐ๋ฅผ ์ง์ ํ์ง ์๋ ์ด์ static๊ณผ ๋..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bNx0Xj/btrgWDI8XpT/nm4ZKmspRZ8XmuKV9YWhRK/img.png)
๋ฌธ์ header์ ๊ฐ ๋ฉ๋ด๋ฅผ ์์ชฝ์ผ๋ก ๋์ด๋๊ธฐ ์ํด์ float ์์ฑ์ ์ฌ์ฉํ์๋๋, ๊ทธ ๋ค์ ์ค๋ ์์๊ฐ ์์ฐจ์ ์ผ๋ก ์์ด๋ ๊ฒ์ด ์๋๋ผ ํ์ฌ header๊ฐ ์์นํ๊ณ ์๋ ์์ญ์ ์ค์ฒฉ๋์ด ๋๋๋ง๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋ค. ๋ฌธ์ ํด๊ฒฐ_float ์์ฑ๊ณผ clearfix ๊ฒฐ๊ณผ์ ์ผ๋ก float ์์ฑ์ ๋ํด์ ์๊ฒ ์๊ณ ์ฌ์ฉํ์ฌ ๋ฐ์ํ ์ค์์๋ค. float element์ ๋ถ์ ์์ฑ์ ์ฃผ์ด ๋ฐฐ์นํ ์ ์๋ ๋ฐฉ๋ฒ float์ผ๋ก ์ปจํ ์ธ ๋ฅผ ๋์ธ ์ ๋ค์ ๋ด์ฉ์ ๋น ์๋ฆฌ๋ฅผ ์ฑ์ฐ๊ธฐ ์ํด ํฌ์ง์ ๋_๋ธ๋ผ์ฐ์ ์์ ์ค๋ฅ ์ฆ, ํ์ฌ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ํ๋ฉด ์์์ float-left์ float-right ์์ฑ์ ์ค ๋ ๊ฐ์ menu-container๋ฅผ ๊ฐ์ธ๊ณ ์๋ ๋ถ๋ชจ ํ๊ทธ์ธ inner ํด๋์ค ํ๊ทธ์ float๊ฐ์ ํด์ ํด ์ฃผ๋ ์ถ๊ฐ ๊ณผ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/2THa5/btrgD3ojpOv/D1yEerXvFeQL1bNYnk0NCk/img.png)
์์ ๋ค์๊ณผ ๊ฐ์ด ๊ฐ๊ธฐ ๋ค๋ฅธ ๋ ๊ฐ์ ํ๊ทธ์ธ div์ img๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง๋ฅผ ๋๋๋งํ์๋ค. ๋ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์์ ๊ฒฝ์ฐ์ ๋์ผํ๊ฒ ํ๋ฉด์ ๋๋๋ง๋๋ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง๋ฅผ ์ง์ ํ ๋ ๋ ๊ฐ์ ํ๊ทธ ์ค์ ์๋ฌด ํ๊ทธ๋ ๋ฌด๋ถ๋ณํ๊ฒ ์ฌ์ฉํด๋ ๊ด์ฐฎ์ ๊ฒ์ธ๊ฐ? ์ด์ ๊ด๋ จ๋์ด ๊ถ๊ธ์ฆ์ด ์๊ฒจ ๊ด๋ จ ์ฌํญ์ ๋ํด์ ๊ฒ์ํด ๋ณด์๊ณ ๋งํฌ์ ์ธ์ด์์ ๋ค์๊ณผ ๊ฐ์ด ์ค์ํ ๊ฐ๋ ์ด ์ ์ ๋จ์ ์ ์ ์์๋ค. Semantic-Web๊ณผ SemanticTags์ ์ฐจ์ด ์๋งจํฑ ์น(Semantic-Web) World-wide-web์ ์ฐฝ์ํ ํ ๋ฒ๋์ค๋ฆฌ๊ฐ ์ ์ํ ์ฐจ์ธ๋ ์น ๊ธฐ์ ์น ์์ ์กด์ฌํ๋ ์ ๋ณด๋ฅผ ์ฌ๋ ๋ฟ๋ง ์๋๋ผ ๊ธฐ๊ณ๊ฐ ์๋ฏธ(Semantic)๋ฅผ ํ์ ๋ฐ ์ฌ์ฉ์์ ์๊ตฌ์ ์ ํฉํ ๊ฒฐ๊ณผ๋ฅผ ์๋น์ค ๋ถ์ฌ๋ฐ์ ์๋..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bpLYMU/btrepvMitKr/XyYxgoLLUKofoGMds2hXwK/img.gif)
๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด ๋ฆฌ์คํธ ํญ๋ชฉ์ JS ์์์ ๋์ ์ผ๋ก ์ถ๊ฐ๋๊ฒ๋ ๊ตฌํํ์๋ค. ํ์ง๋ง ๋ฆฌ์คํธ ํญ๋ชฉ์ด ํ์ฌ ์์ ์์์ view๋ฅผ overflowํ๊ฒ ๋๋ฉด ์๋กญ๊ฒ ์ถ๊ฐ๋ ํญ๋ชฉ์ผ๋ก ์คํฌ๋กค ๋ทฐ๊ฐ ์๋์ผ๋ก ๋ง์ถฐ์ง์ง ์๋ UX์ ์ผ๋ก ๋ถํธํจ์ด ๋ฐ์ํ์๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฒ์์๋ scrollElement์ scrollTop์ ์๋์ ์์น ๊ฐ์ ์ด์ฉํ์์ง๋ง ์ด๋ณด๋ค ๋ ๊ฐํธํ๊ฒ ํน์ ์์ ์์น๋ก ์คํฌ๋กค ๋ทฐ๋ฅผ ์ด๋ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ด ํฌ์คํ ํ๊ณ ์ ํ๋ค. ๋ฌธ์ ํด๊ฒฐ_element.scrollintoView() https://developer.mozilla.org/ko/docs/Web/API/Element/scrollIntoView element.scrollIntoView - Web API | MDN Element ์ธํฐ..
https://choi95.tistory.com/manage/newpost/149?type=post&returnURL=https%3A%2F%2Fchoi95.tistory.com%2F149 https://choi95.tistory.com/manage/newpost/149?type=post&returnURL=https%3A%2F%2Fchoi95.tistory.com%2F149 choi95.tistory.com ์ด์ ๋น๋ฐ์ง๋ ๋ฌธ์ ๋ฅผ ํ ๋ ์ด์ง์ ๊ฐ์ ๊ตฌํ๊ธฐ ์ํด์ ๋ค์๊ณผ ๊ฐ์ ํจ์๋ฅผ ๋ง๋ค์ด ์ฃผ์๋ค. function changeBinary(x, n) { let tmpArr = []; while (x) { tmpArr.push(x % 2); x = parseInt(x / 2); } while (tmpArr.le..
๋ฌธ์ ๋ฌด์ธ๋์ ๊ฐํ ์ฌ๋๋ค์ ๊ตฌ๋ช ๋ณดํธ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌ์ถํ๋ ค๊ณ ํฉ๋๋ค. ๊ตฌ๋ช ๋ณดํธ๋ ์์์ ํ ๋ฒ์ ์ต๋ 2๋ช ์ฉ ๋ฐ์ ํ ์ ์๊ณ , ๋ฌด๊ฒ ์ ํ๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ๊ฐ [70kg, 50kg, 80kg, 50kg]์ด๊ณ ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ด 100kg์ด๋ผ๋ฉด 2๋ฒ์งธ ์ฌ๋๊ณผ 4๋ฒ์งธ ์ฌ๋์ ๊ฐ์ด ํ ์ ์์ง๋ง 1๋ฒ์งธ ์ฌ๋๊ณผ 3๋ฒ์งธ ์ฌ๋์ ๋ฌด๊ฒ์ ํฉ์ 150kg์ด๋ฏ๋ก ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ ์ด๊ณผํ์ฌ ๊ฐ์ด ํ ์ ์์ต๋๋ค. ๊ตฌ๋ช ๋ณดํธ๋ฅผ ์ต๋ํ ์ ๊ฒ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์ฌ๋์ ๊ตฌ์ถํ๋ ค๊ณ ํฉ๋๋ค. ์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ๋ฅผ ๋ด์ ๋ฐฐ์ด people๊ณผ ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ limit๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ฌ๋์ ๊ตฌ์ถํ๊ธฐ ์ํด ํ์ํ ๊ตฌ๋ช ๋ณดํธ ๊ฐ์์ ์ต์๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ..