JS - 檢查是否可見


有時候檢查元素是否可見不能單純檢查當前元素的樣式,需要考慮具體情況,下面是一些檢測方法:

:visible Selector | jQuery API Documentation

相關源碼:

code.jquery.com/jquery-1.11.1.js

jQuery.expr.filters.hidden = function( elem ) {
	// Support: Opera <= 12.12
	// Opera reports offsetWidths and offsetHeights less than zero on some elements
	return elem.offsetWidth <= 0 && elem.offsetHeight <= 0 ||
		(!support.reliableHiddenOffsets() &&
			((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none");
};

jQuery.expr.filters.visible = function( elem ) {
	return !jQuery.expr.filters.hidden( elem );
};

HTMLElement.offsetParent

元素的position不是fixed,並且元素不是<body> or <html>,可以有一個非常巧妙的方法檢查元素及其父元素的display是否是none。參見:javascript - Check if element is visible in DOM - Stack Overflow

// Where el is the DOM element you'd like to test for visibility
function isHidden(el) {
    return (el.offsetParent === null)
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM