HTML 요소의 내용이 오버플로되는지 확인
HTML 요소가 내용을 오버플로했는지(스크롤바에 관계없이) 확인하기 위해 자바스크립트를 사용할 수 있습니까?예를 들어 크기가 작고 고정된 긴 디브, 오버플로 속성이 표시되도록 설정되었으며 요소에 스크롤 막대가 없는 경우 등이 없습니다.
일반적으로, 당신은 비교할 수 있습니다.client[Height|Width]
와 함께scroll[Height|Width]
이것을 탐지하기 위해서는...오버플로가 보일 때 값은 동일합니다.따라서 탐지 루틴은 다음을 고려해야 합니다.
// Determines if the passed element is overflowing its bounds,
// either vertically or horizontally.
// Will temporarily modify the "overflow" style to detect this
// if necessary.
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;
}
FF3, FF40.0.2, IE6, Chrome 0.2.149.30에서 테스트되었습니다.
비교해 보기element.scrollHeight
/element.scrollWidth
로.element.offsetHeight
/element.offsetWidth
http://developer.mozilla.org/en/DOM/element.offsetWidth
http://developer.mozilla.org/en/DOM/element.offsetHeight
http://developer.mozilla.org/en/DOM/element.scrollWidth
http://developer.mozilla.org/en/DOM/element.scrollHeight
또 다른 방법은 요소의 너비를 해당 요소의 부모 너비와 비교하는 것입니다.
function checkOverflow(elem) {
const elemWidth = elem.getBoundingClientRect().width
const parentWidth = elem.parentElement.getBoundingClientRect().width
return elemWidth > parentWidth
}
저는 이것들 중에 하나도 마음에 들지 않아서 이것을 썼습니다.잘 되네요!
function isOverflowY(element) {
return element.scrollHeight != Math.max(element.offsetHeight, element.clientHeight)
}
jQuery를 사용하면 다음을 수행할 수 있습니다.
if ( $(".inner-element").prop('scrollHeight') > $(".inner-element").height() ) {
console.log("element is overflowing");
} else {
console.log("element is not overflowing");
}
다음으로 변경.prop('scrollWidth')
그리고..width()
필요하면
언급URL : https://stackoverflow.com/questions/143815/determine-if-an-html-elements-content-overflows
'bestsource' 카테고리의 다른 글
빈 셀을 제거하는 간단한 방법 동적 드롭다운 목록 Excel (0) | 2023.09.26 |
---|---|
Windows 업데이트의 적용 가능성 규칙을 프로그래밍 방식으로 확인하는 방법은 무엇입니까? (0) | 2023.09.26 |
큰 HTML 문자열로 jQuery 개체 만들기 (0) | 2023.09.26 |
C/C++ 컴파일러는 어떻게 작동합니까? (0) | 2023.09.26 |
Angular 2 + TypeScript로 배열을 복사합니다. (0) | 2023.09.26 |