如何判断一个元素是否在可视范围

快乐打工仔 分类:实例代码

分享一段代码实例,它实现了判断一个元素是否在可视区域的功能。

也就是判断一个元素是否在浏览器客户区之内。

代码实例如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.pipipi.net/" />
<title>犀牛前端部落</title>
<style type="text/css">
div {
  width: 100px;
  height: 100px;
  background-color:#ccc;
  position:absolute;
  text-align:center;
  line-height:100px;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function () {
  var windowheight = $(window).height();
  var firstheight = $("div").offset().top;
  var scrolltop = $(window).scrollTop();
  if (firstheight >= scrolltop && firstheight < (scrolltop + windowheight)) {
    $("div").text("位于可视范围");
  }
});
</script>
</head>
<body>
<div></div>
</body>
</html>

上面的代码实现了我们的要求,下面介绍一下它的实现过程。

一.代码注释:

(1).$(document).ready(function () {}),当文档结构完全加载完毕再去执行函数中的代码。

(2).var firstheight = $("div").offset().top,获取div元素顶部相对于document的偏移量。

(3).var scrolltop = $(window).scrollTop(),获取页面向上滚动的距离。

(4).firstheight >= scrolltop && firstheight < (scrolltop + windowheight),如果div的距离document顶部的偏移量,大于等于页面向上滚动的尺寸,也就是div不会被客户区顶部之外的地方有所遮挡;firstheight < (scrolltop + windowheight)也就是div不会被客户区底部之外的地方有所遮挡。

二.相关阅读:

(1).offset()方法参阅jQuery offset()一章节。

(2).scrollTop()方法参阅jQuery scrollTop()一章节。

如何判断一个元素是否在可视范围,这样的场景在实际项目中还是用的比较多的,关于如何判断一个元素是否在可视范围就介绍到这了。

如何判断一个元素是否在可视范围属于前端实例代码,有关更多实例代码大家可以查看

回复

我来回复
  • 暂无回复内容