Skip to content

renderOnlyVisible={true} 옵션 사용 시 좌우 스크롤 시 잔상이 남는 문제 #930

@hyojaekim

Description

@hyojaekim

환경

  • @egjs/react-flicking: 4.14.0

문제되는 옵션

  • renderOnlyVisible={true}

배경 및 이슈 요약

  • 기존 [email protected]에서 클릭 가능한 영역에 좌우 스크롤이 되지 않는 이슈가 있었음
  • 이를 해결하기 위해 4.14.0으로 업그레이드 후 아래와 같이 preventDefaultOnDrag(✅)옵션 추가함
  • 클릭 영역에 좌우 스크롤은 가능하게 됐지만, 이전 잔상이 남는 현상이 발생함
<Flicking
  align={'prev'}
  ref={flickingRef}
  renderOnlyVisible={true}
  preventClickOnDrag={true}
   preventDefaultOnDrag={true}
  moveType={'strict'}
  onChanged={setButton}
>
  ...
</Flicking>

문의 내용

[email protected] 사용 중, renderOnlyVisible={true} 옵션 활성화되어 있으면
좌우 스크롤 중 이전 아이템의 잔상이 화면에 남는 현상이 발생하고 있습니다.

<Flicking
  align={'prev'}
  ref={flickingRef}
  renderOnlyVisible={true}
  preventClickOnDrag={true}
  preventDefaultOnDrag={true}
  moveType={'strict'}
  onChanged={setButton}
>
  ...
</Flicking>

해당 renderOnlyVisible 옵션은 현재 보이는 영역의 패널만 DOM에 렌더링하고,
스크롤 시 이전 영역은 제거되고 다음 영역이 추가되는 방식으로 동작하는 것으로 확인했습니다.

좀 더 구체적으로 확인 했을 때, ul 태그 단위로 DOM이 동적으로 제거/추가되면서
렌더링 타이밍에 따라 잔상이 생기는 듯 보입니다.

질문

  • renderOnlyVisible={true} 옵션을 유지하면서도 스크롤 중 잔상 현상을 제거할 수 있는 방법이 있을까요?
  • 클릭 영역에서 드래그 시 좌우 스크롤이 가능해야 하며, 초기 로딩 최적화를 위해 전체 렌더링은 피하고 싶습니다.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions