返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JS如何判断指定dom元素是否在屏幕内
  • 158
分享到

JS如何判断指定dom元素是否在屏幕内

2024-04-02 19:04:59 158人浏览 独家记忆
摘要

这篇文章主要为大家展示了“js如何判断指定dom元素是否在屏幕内”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS如何判断指定dom元素是否在屏幕内”这篇文章吧

这篇文章主要为大家展示了“js如何判断指定dom元素是否在屏幕内”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS如何判断指定dom元素是否在屏幕内”这篇文章吧。

实现原理

想要实现这个功能,就要知道具体的实现原理。下面直入主题。

我们通过浏览器在浏览一个网页时候是这个样子的,如图所示

JS如何判断指定dom元素是否在屏幕内

页面的长宽,以及各dom的坐标都是静止的,动的是显示窗口坐标而已。所以明白了这个,那么判断一个dom元素是否可见时,就十分简单了。

我们需要知道三个坐标就可知道当前dom是否在可见区域内,分别是

  1. 显示窗口的顶部坐标

  2. 显示窗口的底部坐标

  3. dom元素的中心坐标

其判断规则就是,当dom元素的中心坐标的X及Y坐标均小于显示窗口的顶部,且大于显示窗口的底部坐标时,那么就可以判断该坐标在可见区域。

OK,那么接下来就是要知道这三个坐标怎么计算了。

首先是窗口的顶部坐标,顶部坐标就是页面的滚动条滚动的距离。

其次是底部坐标,底部坐标就是滚动条的距离加上当前可视窗口的高度。

最后dom元素的中心距离,就是这个dom元素到最顶端的高度加上自身高度的一般。

原理就是那么的简单有木有。

具体实现

明白了原理,具体实现起来就很简单啦。下面直接贴上一个简单的dom代码做下示例,在实际的生产中还是要优化的,比如初次的首屏显示等等,这里就不赘述了。

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
</head>
<style type="text/CSS">
 .box {
 width: 100%;
 height: 200px;
 background: #ff0000;
 margin-bottom: 10px;
 text-align: center;
 color: #fff;
 line-height: 200px;
 font-family: microsoft yahei;
 font-size: 40px;
 
 }
 .animate{
 animation: showText 1s;
 }
 @keyframes showText
 {
 from {
 font-size: 20px;
 }
 to {
 font-size: 40px;
 }
 }
</style>
<body>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</body>
<script type="text/javascript">
 
 var box = document.getElementsByClassName('box');
 document.addEventListener('scroll',function(){
  
  //滚动条高度+视窗高度 = 可见区域底部高度
  var visibleBottom = window.scrollY + document.documentElement.clientHeight;
  //可见区域顶部高度
  var visibleTop = window.scrollY;
  for (var i = 0; i < box.length; i++) {
  var centerY = box[i].offsetTop+(box[i].offsetHeight/2);
  if(centerY>visibleTop&&centerY<visibleBottom){
   box[i].innerHTML = '区域可见'
   box[i].setAttribute("class",'box animate')
   console.log('第'+i+'个区域可见');
  }else{
   box[i].innerHTML = '';
   box[i].setAttribute("class",'box')
   console.log('第'+i+'个区域不可见');
  }
  }
 })
</script>
</html>

效果图

JS如何判断指定dom元素是否在屏幕内

以上是“JS如何判断指定dom元素是否在屏幕内”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网JavaScript频道!

--结束END--

本文标题: JS如何判断指定dom元素是否在屏幕内

本文链接: https://lsjlt.com/news/77682.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JS如何判断指定dom元素是否在屏幕内
    这篇文章主要为大家展示了“JS如何判断指定dom元素是否在屏幕内”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS如何判断指定dom元素是否在屏幕内”这篇文章吧...
    99+
    2024-04-02
  • jquery如何判断dom元素是否存在
    这篇文章主要介绍jquery如何判断dom元素是否存在,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! jquery判断dom元素是否存在的方法:1、使用“...
    99+
    2024-04-02
  • jquery如何判断指定子元素是否存在
    这篇文章主要讲解了“jquery如何判断指定子元素是否存在”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jquery如何判断指定子元素是否存在”吧! ...
    99+
    2024-04-02
  • JavaScript如何判断数组是否存在指定元素
    这篇文章给大家分享的是有关JavaScript如何判断数组是否存在指定元素的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 JS中,可以使用some()...
    99+
    2024-04-02
  • jquery如何判断元素是否包含指定类
    这篇文章主要介绍了jquery如何判断元素是否包含指定类的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇jquery如何判断元素是否包含指定类文章都会有所收获,下面我们一起来看看...
    99+
    2024-04-02
  • js如何判断dom节点是否存在
    这篇文章给大家分享的是有关js如何判断dom节点是否存在的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。javascript是一种什么语言javascript是一种动态类型、弱类型的语言,基于对象和事件驱动并具有相...
    99+
    2023-06-14
  • jQuery如何判断元素是否存在
    这篇文章主要介绍了jQuery如何判断元素是否存在,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。判断元素是否存在<script&nbs...
    99+
    2024-04-02
  • jquery如何判断form元素是否存在
    这篇文章主要讲解了“jquery如何判断form元素是否存在”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jquery如何判断form元素是否存在”吧! ...
    99+
    2024-04-02
  • javascript如何判断元素是否在数组中
    这篇文章将为大家详细讲解有关javascript如何判断元素是否在数组中,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 方法:1、使用inde...
    99+
    2024-04-02
  • es6如何判断元素是否在数组中
    本篇内容介绍了“es6如何判断元素是否在数组中”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • jquery如何判断数组元素是否存在
    在jquery中判断数组元素是否存在的方法:1.新建html项目,引入jquery;2.在项目中定义数组;3.使用$.inArray方法判断元素是否存在;具体步骤如下:首先,在新建一个html项目,在项目中引入jquery;<scri...
    99+
    2024-04-02
  • jQuery如何判断一个元素是否存在
    这篇文章主要介绍了jQuery如何判断一个元素是否存在,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。判断一个元素是否存在if ($('#someDiv...
    99+
    2023-06-27
  • jquery如何判断某元素是否有子元素
    本篇内容主要讲解“jquery如何判断某元素是否有子元素”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jquery如何判断某元素是否有子元素”吧! ...
    99+
    2024-04-02
  • jquery如何判断元素是否只读
    这篇文章主要介绍“jquery如何判断元素是否只读”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“jquery如何判断元素是否只读”文章能帮助大家解决问题。 ...
    99+
    2024-04-02
  • jquery如何判断元素是否有class
    这篇文章主要介绍“jquery如何判断元素是否有class”,在日常操作中,相信很多人在jquery如何判断元素是否有class问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jquery如何判断元素是否有cl...
    99+
    2023-07-05
  • jquery如何判断元素是否被focus
    本文小编为大家详细介绍“jquery如何判断元素是否被focus”,内容详细,步骤清晰,细节处理妥当,希望这篇“jquery如何判断元素是否被focus”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先,我们需要...
    99+
    2023-07-06
  • JS 中判断数组是否包含指定元素的方法有哪些
    这篇文章主要讲解了“JS 中判断数组是否包含指定元素的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JS 中判断数组是否包含指定元素的方法有哪些”...
    99+
    2024-04-02
  • php如何判断是否是数组元素
    本篇内容介绍了“php如何判断是否是数组元素”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php判断是否是数组元素的方法:1、新建一个php...
    99+
    2023-07-04
  • jquery如何根据id判断元素是否存在
    这篇文章主要介绍“jquery如何根据id判断元素是否存在”,在日常操作中,相信很多人在jquery如何根据id判断元素是否存在问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • javascript数组如何判断是否存在某元素
    这篇文章给大家分享的是有关javascript数组如何判断是否存在某元素的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JavaScript是什么JS是JavaScript的简称,它是一种直译式的脚本语言,其解释器...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作