본문으로 건너뛰기

Adaptive

adaptive 옵션으로 패널 이동 후 활성 패널의 높이에 맞춰 viewport 높이를 자동 조정합니다. 다양한 높이의 콘텐츠를 가진 캐러셀에 유용합니다.

import Flicking from "@egjs/flicking";
import "@egjs/flicking/dist/flicking.css";
import "./styles.css";

// adaptive: false (default)
new Flicking("#flick-fixed", {
  adaptive: false,
  align: "center"
});

// adaptive: true
new Flicking("#flick-adaptive", {
  adaptive: true,
  align: "center"
});

요약​

주요 옵션​

옵션타입기본값설명
adaptivebooleanfalse패널 높이에 맞춰 viewport 높이 자동 조정

값별 비교​

값동작적합한 상황
falseviewport 높이 고정 (기본값)동일한 높이의 패널, 고정 레이아웃
true활성 패널 높이에 맞춰 viewport 조정다양한 높이의 카드, 가변 콘텐츠

상세 설명​

adaptive 동작 원리​

adaptive: true이면 패널이 전환될 때마다 현재 활성 패널의 높이로 viewport 높이가 업데이트됩니다.

/* 부드러운 높이 변화를 위한 CSS */
.flicking-viewport {
transition: height 0.3s;
}

연관 옵션​

  • horizontal과의 관계: adaptive는 horizontal: true(수평 모드)에서만 동작합니다. 수직 모드에서는 효과가 없습니다.

사용 시나리오​

언제 사용하나요?
  • adaptive: false: 이미지 갤러리, 동일한 크기의 카드
  • adaptive: true: 다양한 길이의 텍스트 카드, 상품 설명, FAQ 아코디언 스타일

주의사항​

수평 모드 전용

adaptive는 horizontal: true일 때만 동작합니다. horizontal: false(수직 모드)에서는 효과가 없습니다.

레이아웃 시프트

높이가 크게 변하면 아래 콘텐츠가 밀려나는 레이아웃 시프트가 발생합니다. CSS transition으로 부드럽게 처리하거나, 최소 높이를 설정하는 것을 권장합니다.

관련 링크​

관련 옵션​

  • horizontal: 수평/수직 방향 (adaptive는 수평 전용)

관련 데모​

  • Vertical: 수직 모드 (adaptive 미지원)