Javascript 如何获取元素是否在视图中?

Javascript 如何获取元素是否在视图中?,javascript,Javascript,在我的应用程序中,我希望使用: element.scrollIntoView() 要确保该元素位于视口内,它可以工作 但是,我发现它可能会导致一些问题,例如,当一个元素在视口中,然后我将其设置为“进入视图”。然后滚动条将相应地移动,这不是我所期望的 因此,我想确保元素不在视口中,然后调用滚动视图 如何获取元素是否在视口中?我一直使用jQuery的视口插件,效果非常好 使用此插件,您可以执行以下操作: if($(".something:in-viewport").length) { /

在我的应用程序中,我希望使用:

element.scrollIntoView()
要确保该元素位于视口内,它可以工作

但是,我发现它可能会导致一些问题,例如,当一个元素在视口中,然后我将其设置为“进入视图”。然后滚动条将相应地移动,这不是我所期望的

因此,我想确保元素不在视口中,然后调用
滚动视图


如何获取元素是否在视口中?

我一直使用jQuery的视口插件,效果非常好

使用此插件,您可以执行以下操作:

if($(".something:in-viewport").length) {
    // do something
}

此函数用于检查元素是否完全位于视口中

function isElementCompletelyInViewPort(element) {

    var elementData = element.getBoundingClientRect(),
        width = document.documentElement.clientWidth,
        height = document.documentElement.clientHeight;

    return ( 
            elementData.bottom <= height
            && elementData.right <= width
            && elementData.left >= 0
            && elementData.top >= 0);       
}
函数IsElementCompleteLynViewport(元素){
var elementData=element.getBoundingClientRect(),
宽度=document.documentElement.clientWidth,
高度=document.documentElement.clientHeight;
报税表(
elementData.bottom=0);
}
getBoundingClientRect鲜为人知,但所有主流浏览器都支持它。


欢迎提出任何改进建议:)

它只是测试元素是否在文档中,而我想测试一个元素是否在另一个元素中。