์ ์ฉํ ์์ค์ฝ๋ 21๊ฐ~22๊ฐ (switch effect) (๊ธ์จ๊ฐ ๊ต์ฒด๋๋ ํจ๊ณผ) + (ํญ๋ฐ์ค)
<ํจ์>
- .each
๊ฐ์ ํด๋์ค๋ฅผ ๊ฐ๊ฐ ์คํ์์ผ์ค๋ค.
- node
๊ฐ๋ฅดํค๋ ํด๋์ค๊ฐ ์ฌ๋ฌ ๊ฐ์ผ ๋ ์์๋๋ก ๊ฐ๋ฅด์ผ์ฃผ๋ ๋ณ์
<์ผ์ ํ ์๊ฐ๊ฐ๊ฒฉ์ผ๋ก ๊ธ์จ๊ฐ ๊ต์ฒด๋๋ ํจ๊ณผ>
1๋จ๊ณ ์๋ฆฌ (๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ)
- html, css ์ญํ
li๋ ํ์์ absolute (์ ๋ นํ) + opacity : 0
ใด> ์ ๋ถ ๊ฒน์ณ์ง์ง๋ง
li์ active๊ฐ ๋ค์ด๊ฐ๋ฉด li๊ฐ relative๋ก ๋ณ๊ฒฝ + opacity : 1
- script ์ญํ
ํ์ฌ ํ์ฑํ๋ ๋ ์์ ํจ์๋ก ์ง์ ํ ํ, activeํด๋์ค ์ ๊ฑฐํ๊ธฐ
ํ์ฌ ํ์ฑํ๋ ๋ ์์ ๋ค์ ํ๊ทธ๋ฅผ ํจ์๋ก ์ง์ ํ ํ, activeํด๋์ค ์ถ๊ฐํ๊ธฐ
setInterval ํจ์ ์์ ๋ฃ์ด ์ผ์ ํ ์๊ฐ๊ฐ๊ฒฉ์ผ๋ก ์๋ํ๊ฒ ํ๊ธฐ
length๋ฅผ ์ถ๊ฐํ์ฌ ํ์ฌ ํ์ฑํ๋ ๋ ์์ ๋ค์ ํ๊ทธ๊ฐ ์๋ค๋ฉด ์ฒ์์ผ๋ก ๋์๊ฐ๊ฒ ํ๊ธฐ
+html ๋ฆฌ์คํธ ๋๊ฐ๋ก ๋ง๋ค์ด์ ๊ฐ์ด ์๋ํ๊ฒ ๋ง๋ค๊ธฐ
See the Pen by jhs (@jangka44) on CodePen.
2๋จ๊ณ ์๋ฆฌ (๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ)
- html, css ์ญํ
ํ๋จ ๋ฆฌ์คํธdiv์ data-item-seconds="1000"๋ฅผ ๋ฃ์ด์ฃผ๊ธฐ
- script ์ญํ
const itemSeconds = $el.attr('data-item-seconds') ? parseInt($el.attr('data-item-seconds')) : 2000; ์ถ๊ฐํด์ฃผ๊ธฐ
data-item-seconds ์์ฑ๊ฐ์ด ์์ผ๋ฉด, ์ด ํจ์๋ ๊ทธ ์์ฑ๊ฐ์ ๋ฌธ์๊ฐ ์๋ ์ซ์๋ก ๋ณํํด์ค๋ค.
data-item-seconds ์์ฑ๊ฐ์ด ์๋ค๋ฉด, ๊ทธ๋ฅ ์ซ์ 2000์ด ๊ธฐ๋ณธ๊ฐ์ด๊ฒ ๋๋ค.
See the Pen by jhs (@jangka44) on CodePen.
3๋จ๊ณ ์๋ฆฌ (๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ฉ)
์ด์ ๋ค ๋ง๋ค์ด์ง ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง ๊ฐ์ ธ์จ ํ, ์ฌ์ฉํ๋ฉด ๋๋ค!
- html, css ์ญํ
์๊ฐ์ ๋ณ๊ฒฝํ๊ณ ์ถ๋ค๋ฉด ์์ฑ์ data-items-second ์์ฑ์ ์ํ๋ ๊ฐ์ ๋ฃ์ผ๋ฉด ๋๋ค.
css๋ ์ํ๋ ๋๋ก ๊พธ๋ฏธ๋ฉด ๋๋ค. (active๋ฅผ ๋ฃ๋ ๋ฑ๋ฑ...)
- script ์ญํ
๊ฑด๋ค ํ์ ์์
See the Pen by minicoding (@minicoding) on CodePen.
๋๊ธ