ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
Create an INFINITE CSS Carousel๐Ÿค– w/ Negative animation-delay !
Dev.toDev.to
Frontend

Negative animation-delay๋ฅผ ํ™œ์šฉํ•œ ๋ฆฌ์†Œ์Šค ํšจ์œจ์  Infinite Carousel ๊ตฌํ˜„

Create an INFINITE CSS Carousel๐Ÿค– w/ Negative animation-delay !

Ali Shata2026๋…„ 6์›” 19์ผ1๋ถ„intermediate

Context

๊ธฐ์กด Infinite Carousel ๊ตฌํ˜„ ์‹œ ์š”์†Œ ๋ณต์ œ๋ฅผ ํ†ตํ•œ ๋ฌดํ•œ ๋ฃจํ”„ ์ƒ์„ฑ ๋ฐฉ์‹์˜ ๋ฆฌ์†Œ์Šค ๋‚ญ๋น„ ๋ฐœ์ƒ. ๋‹จ์ˆœ ์ขŒ์šฐ ์ด๋™ ๋ฐฉ์‹์œผ๋กœ๋Š” ๋Š๊น€ ์—†๋Š” ๋ถ€๋“œ๋Ÿฌ์šด ์›€์ง์ž„์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ํ•œ๊ณ„ ์กด์žฌ.

Technical Solution

  • ์ „์ฒด ์ปจํ…Œ์ด๋„ˆ ์ด๋™ ๋Œ€์‹  ๊ฐœ๋ณ„ ์š”์†Œ ๋‹จ์œ„์˜ ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ œ์–ด ๋ฐฉ์‹ ์ฑ„ํƒ
  • ๊ฐ ์š”์†Œ์— ๊ณ ์œ  ์ธ๋ฑ์Šค ๊ธฐ๋ฐ˜์˜ ์ฆ๋ถ„ Delay ๊ฐ’์„ ๋ถ€์—ฌํ•˜์—ฌ ์ˆœ์ฐจ์  ์›€์ง์ž„ ์ƒ์„ฑ
  • Negative animation-delay ์ ์šฉ์„ ํ†ตํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹œ์ž‘ ์‹œ์ ์˜ ์˜คํ”„์…‹ ์กฐ์ ˆ๋กœ ์ฆ‰๊ฐ์ ์ธ ๋ฌดํ•œ ๋ฃจํ”„ ์‹œ๊ฐํ™” ๊ตฌํ˜„
  • will-change ์†์„ฑ ๋ถ€์—ฌ๋ฅผ ํ†ตํ•œ ๋ณ„๋„์˜ Compositing Layer ์ƒ์„ฑ์œผ๋กœ CPU ๋ถ€ํ•˜๋ฅผ GPU๋กœ ์ „์ด

1. DOM ์š”์†Œ ๋ณต์ œ ์—†์ด ๋ฌดํ•œ ๋ฃจํ”„ ๊ตฌํ˜„์ด ํ•„์š”ํ•œ์ง€ ๊ฒ€ํ† 

2. ์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹œ์ž‘ ์‹œ์ ์˜ ์ž์—ฐ์Šค๋Ÿฌ์šด ์—ฐ๊ฒฐ์„ ์œ„ํ•ด Negative Delay ๊ฐ’ ์ ์šฉ ๊ณ ๋ ค

3. ์• ๋‹ˆ๋ฉ”์ด์…˜ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด will-change ์†์„ฑ์„ ํ†ตํ•œ GPU ๊ฐ€์† ํ™œ์„ฑํ™” ์—ฌ๋ถ€ ํ™•์ธ

์›๋ฌธ ์ฝ๊ธฐ