function isElementTopAndVisible(element) {
function isVisible(element) {
const rect = element.getBoundingClientRect();
return rect.width > 0 && rect.height > 0 &&
window.getComputedStyle(element).display !== 'none' &&
window.getComputedStyle(element).visibility !== 'hidden';
}
function isOnTop(element) {
const rect = element.getBoundingClientRect();
const centerX = rect.left + rect.width / 2;
const centerY = rect.top + rect.height / 2;
if (centerX < 0 || centerY < 0 || centerX > window.innerWidth || centerY > window.innerHeight) {
return false;
}
const topElement = document.elementFromPoint(centerX, centerY);
return element === topElement || element.contains(topElement);
}
return isVisible(element) && isOnTop(element);
}
原文链接:blog.csdn.net/qq_41179280…