๐ฃcodeLab (16) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [GSAP] gsap ์ ๋ฆฌ ์ ๋ฆฌ์ค ๊ฐ๋จํ๊ฒ ๋ณผ ์ ์์ด์ ์ข๋ค. http://302chanwoo.com/lab/tween/ https://lily-im.tistory.com/70?category=950585 gsap ํ๊ธ ๋ฒ์ญ?? https://agal.tistory.com/m/210 GSAP 3 Cheat Sheet https://greensock.com/cheatsheet/ GSAP ๋ฉ์๋ ๋ฉ์๋์์ฑ Tween๋ฐ๋ก ์คํ๋์ด์ผํ๋ ๊ฐ๋จํ ๋ชจ์ ๋ง๋ค ๋ ์ ์ฉTimeline๋ค์ํ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ชจ์ ์ ์ปจํธ๋กค pause(), play(), progress(), reverse(), timeScale() ๋ฑ๋ฑ GSAP demo https://greensock.com/st-demos/page/3/?d=19 GSAP | properties .. column-count์ฌ์ฉํ์ฌ masonry ๋ํ๋ด๊ธฐ ์กฐ๊ฑด! javascript๋ง๊ณ css๋ง ์ฌ์ฉํ์ฌ masonry grid ๋ํ๋ด๊ธฐ. ๋ฐ์ํ์๋ ์ ์ฉํ ์ ์๋ masonry๋ง๋ค๊ธฐ. Reference https://w3bits.com/demo/css-masonry/ https://hwanlee.tistory.com/64 https://developer.mozilla.org/ko/docs/Web/CSS/CSS_Columns/Using_multi-column_layouts ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ์์ 100vh ์ค๋ฅ(์ง์ ํด๋ณด๊ธฐ) ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ์์ 100vh ์ค๋ฅ โ์ค๋ฅ module ํด๋์ค์ 100vh ์คํ์ผ ์ง์ ํ, ์น ๋ธ๋ผ์ฐ์ ๋ชจ๋ฐ์ผ ์ฌ์ด์ฆ์์๋ ์ ๋ณด์์ผ๋, ๋ชจ๋ฐ์ผ์์๋ ์๋์ ์ด๋ฏธ์ง์ฒ๋ผ 100vh๊ฐ ์ ์ฉ๋์ง ์๊ณ ํ ์คํธ๊ฐ ๋ฐ๋ ค๋๋ ํ๋ฉด์ด ๋ณด์๋ค. โบ๊ธฐ์ค๊ณผ ๋ฌธ์ ์ . ์์ดํฐ๊ธฐ์ค. 14๋ฒ์ . ๋ฌด์กฐ๊ฑด 100vh!! ์ด๋ ๊ธฐ๊ธฐ๋ ํ๋ฉด ์์๋์ ๋ง์ถ๋ค. ์น ๋ธ๋ผ์ฐ์ ์์๋ 100vh๊ฐ ์ ์ฉ๋๋ ๋ชจ๋ฐ์ผ ํฌ๋กฌ, ํ์ด์ดํญ์ค, ์ฌํ๋ฆฌ๊ฐ ์ ์ฉ์ด ์๋จ. ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ๋ง ์ ์ฉํ๊ธฐ ์ํด์ ์๋ css ์ ์ฉ. @media only screen and (max-device-width: ๋ชจ๋ฐ์ผ์ฌ์ด์ฆ) { /* ์๋ ์์ ๋ 640px๋ก ๊ธฐ์ค! */ /* ์ค๋งํธํฐ๋ง ์ผ๋จ ํ์ธ(tablet์ ๋ณ๋ ํ์) */ /* ์น๋ธ๋ผ์ฐ์ ์์ ๊ธฐ๊ธฐํด๋ฐ์ ํํ ๊ฒฝ์ฐ์๋ ์ด.. 3Depth(level) ๋ง๋ค๊ธฐ 1Depth - 2Depth - 3Depth - 3Depth - 3Depth - 2Depth - 3Depth - 3Depth - 2Depth - 2Depth 1Depth - 2Depth - 3Depth - 3Depth - 2Depth - 3Depth - 3Depth - 3Depth 1Depth - 2Depth - 2Depth 1Depth /* reset css */ * { margin: 0; padding: 0; } li { list-style: none; } a, a:active, a:focus { color :#222; text-decoration: none; } /*************** 1Depth ***************/ .lnb { position: relative; width: 20.. swiper slide ์ ์ (margin) ์ฃผ๊ธฐ swiper slide ์ ์ ๊ณต๋ฐฑ๋ง๋ค๊ธฐ Slide 01 Slide 02 Slide 03 Slide 04 Slide 05 Slide 06 slidesOffsetBefore ์ ์ฒด์ ์ธ ์ฌ๋ผ์ด๋ ์ผ์ชฝ์ ๊ณต๋ฐฑ์ ์ค๋ค. slideOffsetAfter ์ ์ฒด์ ์ธ ์ฌ๋ผ์ด๋ ์ค๋ฅธ์ชฝ์ ๊ณต๋ฐฑ์ ์ค๋ค. SVG ์ฐธ๊ณ https://ossam5.tistory.com/116 [HTML๊ธฐ์ด๋ฌธ๋ฒ] 15๊ฐ SVGํ๊ทธ Stroke์์ฑ - ์ค์ค์ ๋๊ฐ์คํฐ๋ 1. SVG ํ๊ทธ๋? - SVGํ๊ทธ๋ Scalable Vector Graphics์ ์ฝ์๋ก ๋ฒกํฐ ๊ธฐ๋ฐ ๊ทธ๋ํฝ์ XML ํ์์ผ๋ก ์ ์ํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. - SVGํ๊ทธ๋ SVG๊ทธ๋ํฝ์ ๋ด๊ธฐ ์ํ ์์์ ๋๋ค. - SVGํ๊ทธ ๋ด๋ถ์ ๋ด์ ์ ์๋ ossam5.tistory.com https://velog.io/@gicomong/css100-day-8 svg์ ์ ๋๋ฉ์ด์ ๋ฃ๊ธฐ svg์ ๊ทธ๋ ค์ง๋ ํจ๊ณผ ์ฃผ๊ธฐ velog.io ์คํฌ๋กค ์ ์๋์ฐ ํ๋จ์ ๊ณ ์ ํ๊ธฐ ์กฐ๊ฑด btn์ด ์ฌ๋ฌ๊ฐ ์ผ ๋ btn ํด๋์ค๋ฅผ ๊ฐ์ง ์์๊ฐ ๋ชจ๋ fix. visual์ผ ๋๋ btn์ด ๋ณด์ด์ง ์์์ผ ํ๋ค. resize์๋ ๊ฐ๋ฅ. ์ผ๋จ ์ฝ๋! header visual cnt01 cnt02 cnt02 footer /* ๋ชจ๋ css ๋์ผ */ * { margin: 0; padding: 0; box-sizing: border-box; } .wrap { position: relative; width: 100%; height: 100%; } header, footer { width: 100%; height: 70px; position: relative; background-color: #eaeaea; } footer { height: 200px; } section { position: relati.. darkmode ๋ง๋ค์ด๋ณด๊ธฐ const theme = localStorage.getItem('theme'); // console.log(theme); // ํ์ฌ theme๋ฅผ ์ ์ ์์. // dark || light if(theme) { document.documentElement.SetAttribute('data-theme', theme); } localStorage :: Storage ๊ฐ์ฒด๋ ๋จ์ํ key-value ์ ์ฅ์์ด๋ฉฐ, ์ด๋ ๊ฐ์ฒด์ ๋น์ทํ๋ค. ์ด ๋ฐ์ดํฐ๋ค์ ํ์ด์ง ๋ก๋ฉ์๋ ์จ์ ํ๊ฒ ์ ์ง๋๋ค. (๋ค์ ์นํ์ด์ง์ ์ ์ ํ ๋ ๋ง์ง๋ง ์ค์ ์ ๋ถ๋ฌ์ฌ ์ ์๋ค.) localStorage getItem(key) :: ํค์ ํด๋นํ๋ ๊ฐ์ ๋ฐ์์จ๋ค. setItem(key, value) :: ํค, ๊ฐ์ ๋ณด.. ์ด์ 1 2 ๋ค์