LINUX.ORG.RU

Определить, что элемент не виден пользователю

 


0

1

Правильно ли я делаю?

function offScreen(el) {
    let offsetLeft = 0;
    let offsetTop = 0;
    let node = el;
    while (node && node.nodeName != 'HTML') {
        let pos = getComputedStyle(node).position;
        if (pos === 'absolute' || pos === 'relative') {
            offsetLeft += node.offsetLeft || 0;
            offsetTop += node.offsetTop || 0;
        }
        node = node.parentNode;
    }
    return offsetLeft + el.offsetWidth < 0 ||
        offsetTop + el.offsetHeight < 0 ||
        offsetLeft > pageXOffset + innerWidth ||
        offsetTop > pageYOffset + innerHeight;
}

Ответ на: комментарий от sphericalhorse

В jQuery :visible - это другое:

Elements are considered visible if they consume space in the document.

anonymous
()
Ответ на: комментарий от no-such-file

По каким «данным координатам»? Предлагаешь каждую точку viewport проверить? Код выше у меня работает. Я использую его для того, чтобы запоминать просмотренные посты. Я просто не уверен в его, кода, полноте.

delovoi
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.