inflearn logo
강의

Khóa học

Chia sẻ kiến thức

[React/VillaJS] Tự tạo các phần tử UI Phần 2

Băng chuyền (2/3) phiên bản React

캐러셀 동작원리

Đã giải quyết

323

imuchgabis3999

21 câu hỏi đã được viết

0

안녕하세요 재남님 강의 너무 잘듣고 있습니다

제가 지금 캐러셀 공부하면서 궁금한것이

  1. 캐러셀 각 이미지에 ref를 다 할당한다

  2. 슬라이드 이벤트 화살표 클릭시 이동할 인덱스를 계산하고 인덱스를 기준으로 current와 next의 ref를 가져온다

  3. 그럼 가져온 ref에 각각 애니메이션 클래스네임을 할당한다 애니메이션에 따라 translateX만큼 이동 , 마지막으로 이동한 인덱스 상태변화

  4. 이렇게 동작원리를 이해를 하였습니다 그래서 일단 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]
  );

react typescript dom ui vanilla-js

Câu trả lời 2

1

jaenam

전혀 바보같지 않습니다!

궁금한 점을 스스로 깨닫는 것이 최고의 배움이라 하더라구요 :D

1

imuchgabis3999

생각을 해보니 애니메이션이 종료후에 상태변경이 일어나야 하는데 저렇게 하면 애니메이션 종료될때까지 기다려주지 않네요...

바보같은 질문이었네요...

6장 ORM 에 관하여 질문

0

1

1

안녕하세요 한번 더 문의드립니다.

0

8

0

git 초기설정하고 Next Js 설치하는게 너무 어렵습니다.

0

8

1

커서 색상 및 클로드코드 프롬프트 입력칸 설정 문의

0

9

1

81강 실습 자료 없음

0

8

1

클로드 질문에서 줄 바꿈

0

12

1

2강 퀴즈를 푸려는데 자꾸 수강하지 않은 수업이있는데.. 다들었습니다 ㅜ

0

15

1

서브에이전트 실행중에도 대기해야 할까요?

0

11

1

소스코드 제공여부

0

22

2

궁금했던 질문입니다. 바로 콤마위치 입니다.

0

15

1

선생님 공유해주신 핸드북에 링크가 몇개 잘못되었어요

0

19

2

62강 실습자료가 잘못되었습니다.

0

17

1

제네릭을 사용하실 때 콤마

0

180

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