Я пытаюсь определить, когда целевой элемент становится видимым (видимым или отображаемым: блоком) независимо от того, где он находится в HTML.
Я пытался использовать MutationObservers, однако изменение видимости может быть обнаружено только в том случае, если наблюдаемый элемент имеет прямое изменение в свойствах CSS.Таким образом, он игнорирует изменения в своем родительском элементе.
var targetNode = document.getElementById('target');
var observer = new MutationObserver(function(){
alert(targetNode.offsetWidth);
}
);
observer.observe(targetNode, { attributes: true, childList: true });
ПРОБЛЕМА возникает, когда изменяются свойства CSS родительского элемента, и он не обнаруживается / не наблюдается MuatationObserver, прикрепленным к дочернему / целевому элементу, как видно изв этом jsfiddle .Есть ли способ (кроме использования интервалов) для наблюдаемого элемента DOM обнаруживать изменения в CSS, которые наследуются от родителей?