> 웹 프론트엔드 > JS 튜토리얼 > 고정 및 스크롤 가능한 하위 요소가 가장자리에 도달할 때 상위 요소 스크롤을 방지하는 방법은 무엇입니까?

고정 및 스크롤 가능한 하위 요소가 가장자리에 도달할 때 상위 요소 스크롤을 방지하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-10-27 01:36:30
원래의
811명이 탐색했습니다.

How to Prevent Parent Element Scrolling When a Fixed and Scrollable Child Element Reaches Its Edge?

하위 요소가 가장자리에 도달할 때 상위 요소 스크롤 방지

상위 요소 내에서 고정 및 스크롤 가능한 요소를 활용하는 경우 하위 요소가 상단이나 하단에 도달하면 부모가 스크롤합니다. 이 문제는 하위 요소 내에서 스크롤하고 상위 요소가 인계받아 백그라운드에서 원치 않는 스크롤이 발생할 때 발생합니다.

시도한 해결 방법 및 제한 사항

처음에는 이벤트 .stoppropagation() 메서드를 사용하여 이벤트 전파를 중지했습니다. 그러나 이 방법은 여전히 ​​전파가 발생하여 비효율적인 것으로 판명되었습니다.

종합 솔루션

보다 효과적인 솔루션은 jQuery를 사용하여 마우스휠 이벤트를 처리하는 것입니다. 솔루션은 WheelDelta 속성을 활용합니다. 양수 값은 위로 스크롤을 나타내고 음수 값은 아래로 스크롤을 나타냅니다.

다음은 스크립트에 대한 자세한 설명입니다.

  1. 이벤트 처리: jQuery 코드는 '.Scrollable' 클래스가 있는 요소에서 'DOMMouseScroll'(Firefox의 경우) 및 'mousewheel' 이벤트(다른 브라우저의 경우)를 모두 수신합니다.
  2. 스크롤 방향 감지: 델타 값은 스크롤 방향을 결정하는 데 사용됩니다.
  3. 기본 동작 방지: 스크롤을 중지하도록 방지 기능이 정의됩니다.
  4. Edge Case Checks : 스크립트는 스크롤이 스크롤 가능한 요소의 최소 또는 최대 위치를 초과하는 극단적인 경우를 확인합니다.
  5. 스크롤 위치 조정: 극단적인 경우가 감지되면 스크립트는 다음을 설정합니다. scrollTop 값을 스크롤 가능한 요소의 0(상단) 또는 scrollHeight(하단)로 설정합니다.
  6. 이벤트 취소: 방지 기능은 이벤트를 완전히 취소하기 위해 실행됩니다. 상위 요소로 전파되지 않습니다.

이 솔루션을 활용하면 사용 중인 브라우저에 관계없이 상위 요소에서 원치 않는 스크롤을 효과적으로 방지할 수 있습니다.

위 내용은 고정 및 스크롤 가능한 하위 요소가 가장자리에 도달할 때 상위 요소 스크롤을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿