개발자

리액트 캐러셀 반복

2024년 04월 15일조회 118

리액트로 캐러셀을 구현했습니다. 이때 넷플릭스의 top10 과 같이 인덱스의 끝에 다다르면 앞의 영화데이터가 뒤로 생겨나게하여 무한 캐러셀처럼 구현하고 싶은데 어렵네요.. 단순히 translate를 앞으로 이동할 수 있지만 넷플릭스에선 앞으로 이동하는게 아닌 뒤로 데이터가 생겨나와서 넘 궁금합니다ㅠ 도와주세요ㅠ

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

안희수님의 프로필 사진

개발하기 나름이지만 힌트를 드리자면 원통이 빙글빙글 돌아간다는 느낌으로 혹은 밑장 빼기를 해서 위에 올린다는 느낌으로 구현해보시면 어떨까합니다 개발에는 사실 정답은 없습니다

profile picture

익명

작성자

2024년 04월 15일

헉..원통이 돌아가듯이.! 해볼 수 있을거 같습니다! 개발에 답은 없다는 말이 편하면서도 마음이 무거워네요 감사합니다!!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 04월 15일

무한 캐러셀을 구현하기 위해서는 데이터를 순환하는 방법을 사용해야 합니다. 이를 위해 자바스크립트의 Array 메서드인 slice, concat 등을 활용하면 좋습니다. 예를 들어, 기존에 사용하고 있는 영화 데이터 array가 있을 때, 현재 인덱스 위치에서 몇 개의 아이템을 가져와 배열의 뒷 부분에 추가하면 됩니다. 아래는 리액트에서 무한 스크롤러를 만들 수 있는 간단한 예제 코드입니다: ```jsx import React, { useState } from 'react'; const Carousel = ({ items }) => { const [currentIndex, setCurrentIndex] = useState(0); const handleNext = () => { setCurrentIndex((currentIndex + 1) % items.length); }; const handlePrev = () => { setCurrentIndex((currentIndex - 1 + items.length) % items.length); }; // 첫 번째 요소를 마지막으로 이동 const rearrangedItems = [...items.slice(currentIndex), ...items.slice(0, currentIndex)]; return ( <div> <button onClick={handlePrev}>Previous</button> <div className='carousel-container'> {rearrangedItems.map(item => ( // Carousel Item rendering... ))} </div> <button onClick={handleNext}>Next</button> </div> ); }; ``` 위의 Carousel 컴포넌트는 props로 item list를 받아 carousel을 생성합니다. currentIndex state는 현재 보여지고 있는 carousel item의 index를 나타냅니다. 'Previous'와 'Next' 버튼을 클릭할 때 마다 currentIndex는 업데이트 됩니다. 최근 인덱스에서 item 배열의 나머지 부분과 첫 부분을 잘라내어 연결(concat)하면, 무한으로 돌아가는 carousel이 만들어집니다. 이런 방법으로 무한 캐러셀을 구현해볼 수 있습니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!