Javascript функция проверки видимости элемента на странице

Стандартные функции jquery с использованием псевдоклассов is(«:visible»), is(«:hidden») не решают такой задачи, когда нужно определить что элемент находится в зоне окна прокрутки и видим. Чтобы определить можно воспользоваться такой функцией:

var Visible = function(target) {
    var targetPosition = {
            top: window.pageYOffset + target.getBoundingClientRect().top,
            left: window.pageXOffset + target.getBoundingClientRect().left,
            right: window.pageXOffset + target.getBoundingClientRect().right,
            bottom: window.pageYOffset + target.getBoundingClientRect().bottom
        },
        windowPosition = {
            top: window.pageYOffset,
            left: window.pageXOffset,
            right: window.pageXOffset + document.documentElement.clientWidth,
            bottom: window.pageYOffset + document.documentElement.clientHeight
        };

    if (targetPosition.bottom > windowPosition.top &&
        targetPosition.top < windowPosition.bottom &&
        targetPosition.right > windowPosition.left &&
        targetPosition.left < windowPosition.right) {
        return true;
    } else {
        return false;
    }
};

 

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *