/**
* Is the element visible by the Eye?
* @param {Element | jQuery} el - object to check. Either an Element or a jQuery selection.
* @returns {object} True if it can be seen.
*/
function isElementVisible(el) {
"use strict";
if (!el) // Can't find? Can't see!
return false;
var v_element = (el instanceof jQuery) ? el : $(el);
if (v_element.length === 0) // Still nothing to look for
return false;
return v_element[0].isSameNode(document.elementFromPoint((v_element.width() / 2) + v_element.offset().left, (v_element.height() / 2) + v_element.offset().top));
}
What happens here?
We are checking if the element at the given point (our element's middle) is the same element as returned by
document.elementFromPoint: then we can see it. If a different one, then that foreign element overlays the one we are looking for.
No comments :
Post a Comment