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鲜为人知,但所有主流浏览器都支持它。
欢迎提出任何改进建议:)它只是测试元素是否在文档中,而我想测试一个元素是否在另一个元素中。