如何检查元素滚动后是否可见?

2023-11-21

我正在通过 AJAX 加载元素。其中一些只有向下滚动页面才可见。有什么方法可以知道某个元素现在是否位于页面的可见部分?


这应该可以解决问题:

function isScrolledIntoView(elem)
{
    var docViewTop = $(window).scrollTop();
    var docViewBottom = docViewTop + $(window).height();

    var elemTop = $(elem).offset().top;
    var elemBottom = elemTop + $(elem).height();

    return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}

简单实用功能这将允许您调用一个实用程序函数来接受您正在查找的元素以及您是否希望该元素完全或部分处于视图中。

function Utils() {

}

Utils.prototype = {
    constructor: Utils,
    isElementInView: function (element, fullyInView) {
        var pageTop = $(window).scrollTop();
        var pageBottom = pageTop + $(window).height();
        var elementTop = $(element).offset().top;
        var elementBottom = elementTop + $(element).height();

        if (fullyInView === true) {
            return ((pageTop < elementTop) && (pageBottom > elementBottom));
        } else {
            return ((elementTop <= pageBottom) && (elementBottom >= pageTop));
        }
    }
};

var Utils = new Utils();

Usage

var isElementInView = Utils.isElementInView($('#flyout-left-container'), false);

if (isElementInView) {
    console.log('in view');
} else {
    console.log('out of view');
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查元素滚动后是否可见? 的相关文章

  • 为什么“dtoa.c”包含这么多代码?

    我将是第一个承认我对低级编程的整体知识有点稀疏的人 我理解许多核心概念 但我不经常使用它们 话虽这么说 我对需要多少代码感到非常惊讶dtoa c http www netlib org fp dtoa c 在过去的几个月里 我一直致力于用
  • 如何在 JavaScript 中构建一个计算数组中出现次数的对象?

    我想计算数组中某个数字出现的频率 例如 在Python中我可以使用Collections Counter创建一个字典 记录某个项目在列表中出现的频率 据我所知 JavaScript 是这样的 var array 1 4 4 5 5 7 va
  • History.replaceState 仍然向“浏览历史记录”添加条目

    具体来说 调用以下代码片段 history replaceState undefined undefined value 正确地不会影响当前页面的后退按钮行为 但是will在 浏览历史记录 页面添加一个条目 这是我不想要的 下图是 Chro
  • 使用 easyXDM 调整 IFrame 大小

    我将 iFrame 代码提供给客户 以便他们可以显示我网站上的动态内容 我希望其页面上的 iFrame 能够调整大小以适合我的内容 我按照 easyXDM 网站的说明进行操作 但也许我遗漏了一些东西 我没有收到任何错误 但 iFrame 保
  • JointJS - 处理链接删除点击

    创建链接后 将鼠标悬停在其上会显示红色 X 以将其删除 单击此按钮将触发一系列事件 通过订阅 全部 活动收集 单元格 向下指针 链接 向下指针 cell pointermove x5 似乎可疑 单元格 指针向上 在浏览了文档并花费了太长时间
  • 如何向尚未添加到页面的元素注册 Javascript 事件处理程序

    我正在尝试构建一个greasemonkey 脚本 它将根据用户与其他动态创建的数据表的交互动态创建数据表 我的问题是 每次创建表时 我都必须进行两次传递 一次用于创建表 另一次用于获取表中我想要添加事件处理程序的所有对象 通过 id 并添加
  • NodeJS 无法加载 css 文件

    所以我正在尝试制作一个 NodeJS 服务器 并且我尝试保留尽可能少的附加组件 但是 我遇到了一个问题 我似乎无法加载任何内容CSS我调用的文件HTML文件 该调用似乎确实由服务器处理 但它不会显示在浏览器中 My 网络服务器 js fil
  • Angular-Datatables + Angular-xeditable:取消可编辑行

    当组合 Angular DataTables 和 Angular XEditable 时 添加新行时会取消可编辑行 这是jsfiddle https jsfiddle net faj61h5d 10 示例操作如下 1 这是初始状态 2 将第
  • 如何在参数上使用 .reduce() 而不是特定的数组或对象?

    我想定义一个函数 flatten 将多个元素展平为一个数组 我知道以下是不可能的 但本质上我想这样做 var flatten function var flattened arguments reduce function acc elem
  • 是否可以使用 Javascript 读取 PHP 会话?

    我正在使用 cakePHP 1 26 在控制器中 我得到了一个包含以下代码行的函数 this gt Session gt write testing user this gt Session gt read testing 现在系统编写了一
  • 在外部单击时关闭弹出 div

    我有一个弹出 div 仅在单击特定按钮时显示 单击同一按钮时它甚至会隐藏 我的问题是 我还想在单击外部任何地方时隐藏 div 我无法这样做 因为弹出 div 位于主包装类内部 并且无法通过在包装类上使用 click 事件并使其隐藏来做到这一
  • 如何在 OpenLayers 3 中删除监听器

    我做了一个copy https gis stackexchange com questions 178222 how to delete a listener in openlayers 3我在 stackoverflow 上提出的问题 因
  • Google 地图 v3 中标准缩放控件的样式

    有没有一种简单的方法可以在 Google Maps JavaScript API v3 中设置缩放控件的样式 我想要的只是改变标准图像 http maps gstatic com intl en ALL mapfiles mapcontro
  • IE6 丢失查询字符串

    我有一个使用 javascript 从查询字符串中获取值的页面window location 从网络服务器运行时效果很好 但如果我通过将其放在地址栏中使用 IE6 在本地运行它 c mysite index htm 网站创建的任何查询字符串
  • Javascript - 如何计算数字的平方?

    使用 JavaScript 函数 function squareIt number return number number 当给定数字 4294967296 时 函数返回 18446744073709552000 每个人都知道真正的答案是
  • 获取 2 个日期之间的月份名称

    我有两个约会from and to 我想获取这两个日期之间的所有月份名称 以下是我的代码 var monthNames January February March April May June July August September
  • 加载 Ember.View 的内容后初始化 jQuery 插件

    DEBUG Ember VERSION 1 0 0 rc 6 ember js DEBUG Handlebars VERSION 1 0 0 rc 4 ember js DEBUG jQuery VERSION 1 9 1 控制器是一个Em
  • 在浏览器上录制视频并上传到LAMP服务器

    我已经尝试了很多东西 red5 jquery 网络摄像头 html5 但这些解决方案都没有录制视频并准备好上传到服务器 无论如何 html5 flash 等等 更好的跨浏览器解决方案 最好的 上传视频 音频 并将结果上传到服务器 我猜是通过
  • 地址更改时如何停止 Angular 重新加载

    我正在使用 Angular 的scrollTo and anchorScroll像这样 app controller TestCtrl function scope location anchorScroll scope scrollTo
  • Chrome Prerender 功能每次都会被取消

    我正在尝试 Chrome 中的预渲染功能 但是当我检查网络时 我可以看到任何链接的请求都被取消 我使用以下语法 我尝试了现场演示http prerender test appspot com http prerender test apps

随机推荐

  • Linux 的 syslog_r?

    各位 我找不到适用于 Linux 的 syslog 的可重入版本 有吗 如果没有 你会怎么做 显而易见的答案是将日志记录工具移至单独的线程中并序列化对系统日志的访问 根据POSIX规范 syslog函数已经是线程安全的 因此在Linux中实
  • 十六进制浮点文字

    是否可以在 C 中使用十六进制浮点值初始化浮点变量 像这样的东西 double d 0x011 1 wrong 技术规格P0245 C 的十六进制浮点数已于 2016 年 2 月在佛罗里达州杰克逊维尔的 ISO C 标准委员会投票进入 C
  • 过滤包含自定义对象的 NSArray

    I have UISearchBar UITableView 一个返回 a 的 Web 服务NSMutableArray包含这样的对象 Food h Food NSObject NSString foodName int idFood pr
  • 是什么导致 SQL Server 返回消息“语句已终止”?

    我有一个非常简单的 INSERT 语句 它是从 Linux Apache Web 服务器上运行的 PHP 脚本执行的 我可以在 SQL Management Studio 中正常运行查询 并且通常在 PHP 中也可以正常运行 但是 每隔一段
  • 如何使用 FromBody 在 POST 上返回无效的 JSON 消息?

    我正在使用 Net 4 5 1 使用 MVC 6 创建 ASP Net 5 应用程序 我有一个 POST 方法 它使用 FromBody 参数自动获取对象 HttpPost public IActionResult Insert FromB
  • 如何从xsd生成xpath?

    如何从 xsd 生成 xpath XSD 验证 xml 我正在一个项目中工作 我使用 java 从 xsd 生成示例 XML 然后从该 XML 生成 xpath 如果有任何方法可以直接从 xsd 生成 xpath 请告诉我 这可能有用 im
  • Zoo/xts - 无法对 1 细胞子集进行数学计算? R 挂起

    我在 Windows 上使用最新版本的 R xts zoo R 2 15 xts 0 8 6 zoo 1 7 7 我看到以下奇怪的行为 以前的版本没有这种情况 library xts data sample matrix sample xt
  • c中的##是什么?

    我看过这个片段 define kthread create threadfn data namefmt arg kthread create on node threadfn data 1 namefmt arg 什么是 代表 是什么意思
  • 如何在 asp:GridView 中启用就地编辑?

    我如何添加编辑框 并在提交期间读取它们的值 使用asp Repeater 我有一个asp GridView它显示只读 即不可编辑 数据集 例如 我怎样才能启用的单元格GridView可编辑 例如 Photoshop Mockup Note
  • CUDAfy.NET 给出 Win32Exception:系统找不到指定的文件

    我已经添加了对CUDAfy NET通过 NuGet 的库
  • 确定实体是否是新的而不检查@Id

    有没有办法确定给定的实体类 Entity class A String name boolean method Object anyEntity How can I check here if this entity is complete
  • 从 Java 配置中使用 Spring 动态语言支持

    我想用动态语言支持Spring框架 在 XML 中我只需使用lang命名空间 但我想使用 Java 配置 即 Configuration类 only 我可以想象我可以通过初始化所有内容来做到这一点org springframework sc
  • 行锁 - 手动使用它们

    我基本上有一个应用程序 它有 5 个线程 每个线程都从表中读取 该查询是一个简单的 SELECT TOP 1 from the table 但我想强制执行锁定 以便下一个线程将从表中选择下一条记录 而不是锁定的记录 当应用程序完成其任务时
  • 无需包装器或使用 API 即可访问 Google 趋势数据:Python

    我正在尝试编写一个 Python 程序来从 Google Trends GT 收集数据 具体来说 我想自动打开 URL 并访问折线图中显示的特定值 我很乐意下载 CSV 文件 或者通过网络抓取值 根据我对 Inspect Element 的
  • 如何使用python直接从服务器发送电子邮件而不使用smtp

    我是 php 程序员 使用 php 您可以直接向服务器发送电子邮件 例如以下代码向客户端发送电子邮件 但在Python中 你必须使用smtplib和gmail或hotmail服务器来发送电子
  • 如何从锚子节点获取父级div id

    div class wizard rules If a href class highlight ALL DASHBOARD a encounters an error div 这里我想获取div idwizard ruleonclick
  • 如何减小android中单选按钮的大小

    我们可以减小 android 中单选按钮的大小吗 据我所知 单选按钮可以完成 但不像其他 EditText 或 TextView 那样 试试这个代码
  • 使用CSS,如何使图像跨越页面的整个宽度作为背景图像?

    比如说 就像这个例子一样 http www electrictoolbox com examples wide background image html 当我这样做时 无论我做什么 最终图像周围都会出现白色边框 我究竟做错了什么 如果你希
  • 如何从模板引擎 TWIG 中的完整路径加载模板

    我想知道如何从完整路径加载模板 例如FILE恒定给予 实际上你必须为模板设置一个 根 路径 如下所示 require once path to lib Twig Autoloader php Twig Autoloader register
  • 如何检查元素滚动后是否可见?

    我正在通过 AJAX 加载元素 其中一些只有向下滚动页面才可见 有什么方法可以知道某个元素现在是否位于页面的可见部分 这应该可以解决问题 function isScrolledIntoView elem var docViewTop win