>웹 프론트엔드 >CSS 튜토리얼 >고정 위치 목록에서 ScrollIntoView(true)를 사용할 때 전체 페이지가 이동하는 이유는 무엇입니까?

고정 위치 목록에서 ScrollIntoView(true)를 사용할 때 전체 페이지가 이동하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-16 07:52:02629검색

Why Does the Entire Page Move When Using ScrollIntoView(true) in a Fixed-Position List?

ScrollIntoView() 및 의도하지 않은 페이지 이동

질문:

ScrollIntoView(true)를 사용하여 항목을 스크롤할 때 고정 위치 목록에서 볼 때 전체 페이지가 약간 이동하는 이유는 무엇입니까?

컨텍스트:

고정 위치 목록(#listOfDivs)은 AJAX를 통해 로드됩니다. 모바일 장치의 Safari. 아래쪽 스크롤에 ScrollIntoView(false)를 사용하면 예상대로 작동하지만 위쪽 스크롤에 ScrollIntoView(true)를 사용하면 전체 페이지가 이동합니다.

구조:

#listOfDivs {
  position: fixed;
  top: 100px;
  width: 300px;
  height: 300px;
  overflow-y: scroll;
}
<div>

답변:

ScrollIntoView(true)의 기본 동작은 뷰포트 상단에서 요소를 스크롤하여 표시하는 것입니다. 전체 페이지가 이동하는 것을 방지하려면 동작 옵션을 부드럽게, 차단 옵션을 가장 가까운 것으로, 인라인 옵션을 시작으로 지정하세요.

element.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' })

문서:

ScrollIntoView 메서드에 대한 자세한 내용은 MDN(Mozilla 개발자 네트워크) 설명서를 참조하세요: https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView

위 내용은 고정 위치 목록에서 ScrollIntoView(true)를 사용할 때 전체 페이지가 이동하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.