首页 前端知识 js判断元素是否在可视区域内

js判断元素是否在可视区域内

2024-02-16 14:02:06 前端知识 前端哥 672 302 我要收藏

基本概念

首先需要搞清楚 clientHeightscrollTop 的区别,通俗地说,clientHeight 指的是网页可视区域的高度,scrollTop 指的是网页被卷起来的高度,可以参考这篇文章:彻底搞懂clientHeight、offsetHeight、scrollHeight的区别。

一个简单的示意图如下:
clientHeight和scrollTop

实现逻辑

现在我们需要判断document中的元素,相对于屏幕在哪个位置:

元素和屏幕的相对位置关系

  • div在可视区域外
    分为两种情况:div在可视区域上方、div在可视区域下方。
    我们可以容易得到div高度为 divHeight,div到document顶端距离为 divOffsetHeight
    const divOffsetHeight= $("div").offset().top;
    const divHeight = $("div").height();
    
    1. div在可视区域上方
      此时,divOffsetHeight + divHeight < scrollTop
    2. div在可视区域下方
      此时,divOffsetHeight > scrollTop + clientHeight
  • div在可视区域内
    除上述情况之外,就是div在可视区域内的情况。

完整代码

const divOffsetHeight= $("div").offset().top;
const divHeight = $("div").height();
const scrollTop = document.body.scrollTop;
const clientHeight = document.body.clientHeight;
if (divOffsetHeight + divHeight < scrollTop 
	|| divOffsetHeight  > scrollTop + clientHeight) {
	console.log("div在可视区域以外");
} else {
	console.log("div在可视区域以内");
}
转载请注明出处或者链接地址:https://www.qianduange.cn//article/2181.html
标签
评论
发布的文章

jquery.动画和事件

2024-03-03 11:03:13

jQuery位置方法

2024-03-03 11:03:13

jQuery中val()和text()的区别

2024-03-03 11:03:11

jquery实现甘特图时效管理

2024-03-03 11:03:47

django之 echarts数据可视化

2024-03-03 11:03:26

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!