如何判断元素在视口中是否可见并占用整个视口?

时间:2014-04-29 13:57:44

标签: javascript dom viewport

我在这里找到了这个解决方案:https://stackoverflow.com/a/7557433/5628

但是,这仅用于确定元素在视口中是否可见。

相反:我想要做的是略有不同,因为我想确定元素是否占用整个视口。

2 个答案:

答案 0 :(得分:0)

检查元素top和left是否小于或等于当前滚动或视口位置,如果元素高度和宽度等于或大于viewport

答案 1 :(得分:0)

你需要调整一下代码,但是使用一点点jQuery就可以完美地运行:

$(window).resize(function () {
    myFun.elementBiggerThanViewportCallback();
});

myFun.elementBiggerThanViewport = function (el) {

    //special bonus for those using jQuery
    if (el instanceof jQuery) {
        el = el[0];
    }

    var rect = el.getBoundingClientRect();

    return (
        rect.top <= 0 &&
        rect.bottom >= (window.innerHeight || document.documentElement.clientHeight)
    );
}

elementBiggerThanViewportCallback = function (el) {
    var ifBigger = tabccordion.elementBiggerThanViewport(el);
    // Do stuff here.
}