>웹 프론트엔드 >JS 튜토리얼 >JavaScript는 스크롤 막대가 표시되지 않는 경우에도 HTML 요소에서 오버플로된 콘텐츠를 어떻게 감지할 수 있습니까?

JavaScript는 스크롤 막대가 표시되지 않는 경우에도 HTML 요소에서 오버플로된 콘텐츠를 어떻게 감지할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-29 19:34:12602검색

How Can JavaScript Detect Overflowed Content in HTML Elements, Even Without Visible Scrollbars?

JavaScript를 사용하여 HTML 요소에서 오버플로된 콘텐츠 감지

웹 개발에서는 요소의 콘텐츠가 해당 요소의 범위를 넘어서 오버플로되지 않도록 하는 것이 중요합니다. 스크롤바가 보이지 않더라도 경계. 예를 들어, 이 문제는 크기가 고정되어 있고 "overflow" 속성이 "visible"로 설정된 요소에서 발생할 수 있습니다.

요소가 콘텐츠를 오버플로했는지 확인하려면 JavaScript를 활용할 수 있습니다. 표준 접근 방식은 요소의 클라이언트[높이|너비]와 스크롤[높이|너비]를 비교하는 것입니다. 그러나 오버플로 속성이 "visible"로 설정된 경우 이러한 값은 동일합니다.

이 문제를 해결하려면 다음 JavaScript 함수의 예시와 같이 보다 정교한 감지 루틴이 필요합니다.

function checkOverflow(el) {
   var curOverflow = el.style.overflow;

   if (!curOverflow || curOverflow === "visible")
      el.style.overflow = "hidden";

   var isOverflowing = el.clientWidth < el.scrollWidth
      || el.clientHeight < el.scrollHeight;

   el.style.overflow = curOverflow;

   return isOverflowing;
}

이 함수는 요소의 "오버플로" 스타일을 일시적으로 "숨김"으로 설정하여 scrollHeight 및 scrollWidth 값을 올바르게 계산합니다. 계산 후에는 원래의 오버플로 스타일을 복원합니다. 이 값을 요소의 clientHeight 및 clientWidth와 비교하여 요소가 수직 또는 수평으로 오버플로되는지 확인할 수 있습니다.

이 접근 방식은 Firefox 3, Firefox 40.0.2, Internet Explorer를 포함한 다양한 브라우저에서 테스트되었습니다. 6, 크롬 0.2.149.30.

위 내용은 JavaScript는 스크롤 막대가 표시되지 않는 경우에도 HTML 요소에서 오버플로된 콘텐츠를 어떻게 감지할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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