개발자

특정 요소가 보이는 것을 인식하는데 잘 맞지 않습니다.

2022년 09월 26일조회 80

안녕하세요. React에서 타겟 요소가 보이지 않을 때 컴포넌트 A를 표시하고 싶습니다. getBoundingClientRect를 이용해서 다음과 같이 구현하고 위의 고정된 컴포넌트 높이만큼 오프셋을 줬는데도 타겟 요소가 사라지는 타이밍과 컴포넌트가 표시되는 타이밍이 미묘하게 맞지 않습니다. 잘못 구현했거나 수정해야하는 부분이 있을까요? 코드 확인해주시면 감사하겠습니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

이은재님의 프로필 사진

올려주신 코드만으로는 파악하기 힘들지만, 타겟 컴포넌트 전후로 여백이 있을 수도 있고, 인식되는 스크롤 위치 값이 완전 연속적이지 않기 때문에 각 컴포넌트가 보이지 않고 나타나는 타이밍이 맞지 않을 수 있을 것 같습니다. 가장 간단하게는 오프셋 값을 조금 조정해볼 수 있기도 하겠지만, 그것보다는 사용하신 getBoundingClientRect의 대안으로 나온 Intersection Observer API를 사용해보시는 걸 권장드립니다. 관련해서 읽어볼만한 링크 몇 개 추가합니다. https://developer.mozilla.org/ko/docs/Web/API/Intersection_Observer_API https://heropy.blog/2019/10/27/intersection-observer/ http://blog.hyeyoonjung.com/2019/01/09/intersectionobserver-tutorial/

profile picture

익명

작성자

2022년 10월 17일

자세한 설명 감사합니다!!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!