-
Notifications
You must be signed in to change notification settings - Fork 134
코드 가이드 ‐ Flicking
malangfox edited this page Jan 16, 2025
·
1 revision
- 인스턴스 및 플러그인 초기화, 옵션 처리, 이벤트 바인딩을 담당합니다.
- getter, setter, 메서드 등 주요 동작도 정의되어 있습니다.
- 현재 활성 Panel의 이전 Panel로 이동합니다.
-
moveTo
메서드를 사용하여 현재 활성 Panel 인덱스에서 -1 한 Panel로 이동합니다. - 이전 Panel이 없으면 동작하지 않으며, circular 모드일 경우 마지막 Panel로 이동합니다.
- 이동 중
moveStart
,move
,moveEnd
이벤트가 발생합니다.
-
- 현재 활성 Panel의 다음 Panel로 이동합니다.
-
moveTo
메서드를 사용하여 현재 활성 Panel 인덱스에서 +1 한 Panel로 이동합니다. - 다음 Panel이 없으면 동작하지 않으며, circular 모드일 경우 첫 번째 Panel로 이동합니다.
-
- 특정 Panel 인덱스나 위치로 이동합니다.
- 이동할 Panel 인덱스와 함께 옵션으로 애니메이션 지속 시간, 애니메이션 효과 등을 설정할 수 있습니다.
- 대상 Panel이 유효하지 않으면 오류가 발생하지 않고 이동하지 않습니다.
- Camera의
lookAt
메서드를 호출하여 위치를 업데이트하며, 필요 시moveStart
,move
,moveEnd
이벤트를 발생시킵니다.
- 진행 중인 애니메이션의 상태를 업데이트합니다.
-
updateAnimation
메서드는 내부적으로AnimationManager
를 사용하여 Camera의 위치를 계산하고, DOM 변화를 반영합니다. - Flicking이 초기화되거나, 사용자 입력 중에 호출됩니다.
-
- 진행 중인 애니메이션을 즉시 중지합니다.
- 현재 Camera의 위치를 즉시 애니메이션 대상 위치로 고정하고,
AnimationManager
상태를 초기화합니다.
- 현재 Camera의 위치를 즉시 애니메이션 대상 위치로 고정하고,
- 주어진 인덱스에 해당하는 Panel 객체를 반환합니다.
- 내부적으로 Panel 배열을 참조하여 유효한 인덱스인지 확인 후 반환하며, 범위를 벗어난 경우
null
을 반환합니다.
- 내부적으로 Panel 배열을 참조하여 유효한 인덱스인지 확인 후 반환하며, 범위를 벗어난 경우
- 사용자 입력(터치, 마우스 드래그 등)을 활성화합니다.
-
InputController
의 활성화 상태를 true로 설정하여 사용자의 입력을 다시 허용합니다.
-
- 사용자 입력을 비활성화합니다.
-
InputController
의 활성화 상태를 false로 설정하여 Flicking이 사용자 입력을 무시하도록 만듭니다.
-
- Flicking의 현재 상태를 JSON 형식으로 반환합니다.
- 반환되는 상태에는 Camera의 위치, 활성 Panel의 인덱스, Panel 배열 등이 포함되며, 상태 복원이나 동기화에 사용됩니다.
-
getStatus
로 얻은 상태를 Flicking에 적용합니다.- JSON 상태 데이터를 분석하여 Camera 위치와 Panel 배열을 복원하며, 이벤트를 발생시키지 않고 빠르게 상태를 동기화합니다.
- Flicking에 플러그인을 추가하여 기능을 확장합니다.
- 플러그인의
init
메서드를 호출하여 Flicking과의 연결을 설정하며, 기존 플러그인과 충돌 여부를 확인합니다.
- 플러그인의
- Flicking에서 특정 플러그인을 제거합니다.
- 제거할 플러그인의
destroy
메서드를 호출하여 Flicking과의 연결을 해제합니다.
- 제거할 플러그인의
- Flicking의 크기와 관련된 상태를 업데이트합니다.
- Viewport, Panel 크기 등을 재계산하며, Camera와 Anchor 위치도 갱신됩니다.
- 브라우저 크기 변경, DOM 구조 변경 후 호출이 필요합니다.
- 새로운 Panel을 Viewport의 끝에 추가합니다.
- 새로운 DOM 요소를 Flicking의 Panel 배열에 추가하고, Camera와 Anchor 위치를 갱신합니다.
- 새로운 Panel을 Viewport의 시작에 추가합니다.
- 새로운 DOM 요소를 가장 앞에 추가하고, 모든 Panel과 Camera의 오프셋을 조정하여 올바른 정렬을 유지합니다.
- 특정 위치에 새로운 Panel을 추가합니다.
- Panel 배열의 지정된 인덱스에 DOM 요소를 삽입하고, 이후의 Panel 위치와 Camera 정보를 갱신합니다.
- 특정 Panel을 Flicking에서 제거합니다.
- Panel 배열에서 제거된 Panel을 삭제하고, Camera와 Anchor 정보를 다시 계산하여 정렬을 유지합니다.