0

因此,当作为参数给出的元素完全在视口/窗口中时,下面的代码将返回 true。

我如何更改它,以便当元素的任何位或任何超过 0% 的元素在视口中时它返回 true?

function isElementInViewport(el){
        var rect = el.getBoundingClientRect();
        return(
            rect.top >= 0 &&
            rect.left >= 0 &&
            rect.bottom <= (window.innerHeight || document. documentElement.clientHeight) && 
            rect.right <= (window.innerWidth || document. documentElement.clientWidth)
            );
}
4

1 回答 1

2

交换topbottom,交换leftright

function isElementInViewport(el){
    var rect = el.getBoundingClientRect();
    return rect.bottom >= 0 &&
        rect.right >= 0 &&
        rect.top <= (window.innerHeight || document. documentElement.clientHeight) && 
        rect.left <= (window.innerWidth || document. documentElement.clientWidth);
}

在这里演示:jsfiddle.net/w7ApB

于 2013-07-08T01:56:13.010 回答