캐러셀 동작원리
안녕하세요 재남님 강의 너무 잘듣고 있습니다
제가 지금 캐러셀 공부하면서 궁금한것이
캐러셀 각 이미지에 ref를 다 할당한다
슬라이드 이벤트 화살표 클릭시 이동할 인덱스를 계산하고 인덱스를 기준으로 current와 next의 ref를 가져온다
그럼 가져온 ref에 각각 애니메이션 클래스네임을 할당한다 애니메이션에 따라 translateX만큼 이동 , 마지막으로 이동한 인덱스 상태변화
이렇게 동작원리를 이해를 하였습니다 그래서 일단 animationend는 없어도 될거 같아서 일단 없애고 코드를 작성하니 화면 전환은 되는데 자연스러운 슬라이드가 아니라 그냥 뚝뚝끊기는 이미지 전환이 되고있습니다.. 제 생각엔 handleAnimationEnd함수는 애니메이션 동작완료후 동작하는것이라고 알고있는데 애니메이션이 동작을 안하는 이유를 모르겠습니다
const moveTo = useCallback(
(nextIndex: number, direction?: Direction) => {
const $current = itemsRef.current![currentIndex] as HTMLLIElement;
const $next = itemsRef.current![nextIndex] as HTMLLIElement;
if (nextIndex === currentIndex) return;
const dir = direction || (nextIndex > currentIndex ? "right" : "left");
// const handleAnimationEnd = () => {
// $current.className = cx("item");
// $next.className = cx("item", "current");
// $current.removeEventListener("animationend", handleAnimationEnd);
// setCurrentIndex(nextIndex);
// };
// $current.addEventListener("animationend", handleAnimationEnd);
$current.classList.add(cx(`${dir}_current`));
$next.classList.add(cx(`${dir}_next`));
setCurrentIndex(nextIndex);
},
[currentIndex]
);
Answer 2
서브에이전트 실행중에도 대기해야 할까요?
0
7
1
소스코드 제공여부
0
10
2
궁금했던 질문입니다. 바로 콤마위치 입니다.
0
9
1
선생님 공유해주신 핸드북에 링크가 몇개 잘못되었어요
0
13
2
62강 실습자료가 잘못되었습니다.
0
13
1
코드 자료는 없는걸까요?
0
21
2
37강에서 ROADMAP.md 파일
0
23
2
.claude, setting~, permission 했을 때 Bash 안 보여요
0
17
2
[미션4] open with Live Server 클릭시 브라우저 안뜸
0
19
3
사용량 한도 도달
0
27
2
Cursor를 실행했을 때 나오는 화면이 달라요
0
20
2
Claude code 대화하는 부분이 위치변경 문의 드립니다.
0
18
2
제네릭을 사용하실 때 콤마
0
179
2
popover createPortal 방식에서
0
167
2
스낵바를 만들 때 snackBarContext와 snackBarSetContext
0
166
2
snackbar를 createportal를 썻을 때 갯수 조절이 가능한가요?
0
204
1
useCallback, useMemo의 차이에 대해서 궁금합니다.
0
382
1
createPortal 활용해서 modal 만들 때 활용한 MutationObserver 코드 관련 질문
0
370
3
강의자료 (보일러플레이트) 다운로드 관련 질문
0
269
1
모달만드는 방식 질문
0
257
1
dropdown 내부에서 data의 타입을 알아야 할까요?
0
216
1
Provider를 외부에 노출하는 것보다 내부 로직으로 숨기는 것은 어떤가요?
0
300
2
keyEventMap를 전역에 구현하신 이유가 궁금합니다!
0
280
2
테일윈드로 포탈로 모달작성시 뒤에 클릭이 안됩니다
1
325
2

