javascript - 是否可以只提取可滚动 div 的可见内容?

标签 javascript html

我有一个<div>overflow: auto;以及足够的内容需要垂直滚动。

有没有一种方法,使用PLAIN JAVASCRIPT,仅提取 <div> 中的可见内容(HTML) ? (也就是说,仅基于当前滚动条位置在屏幕上可见的内容)。注意 - 容器不必是 <div> .

最佳答案

当然,只要您不介意对容器应用一些位置。应用定位后,您就可以获得子元素相对于其父元素的高度(和宽度)的偏移量,如果需要),然后确定该元素是否可见。

这是我仅在 Chrome 中测试过的一个简单的 fiddle ,因此使用风险自负! ;)

http://jsfiddle.net/7nz1kfyx/

相关JS:

function isElementVisible (el, parent) {
    return (el.offsetTop + el.clientHeight) <= (parent.clientHeight);
}

您可以向返回的条件添加其他逻辑(例如,检查元素相对于其父元素的 offsetLeft 以查看它是否实际上可见...)

希望这有帮助!

关于javascript - 是否可以只提取可滚动 div 的可见内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28823277/

相关文章:

html - @media 查询和常规的 css 交互

.net - MVC 应用程序中的前端字段对齐

javascript - 如何使用 JQuery 删除克隆的 HTML 元素?

javascript - Css 模态框 z 索引不起作用

javascript - Chrome 扩展 - getUserMedia 抛出 "NotAllowedError: Failed due to shutdown"

php - 如何使用带有 AJAX 的帖子传递隐藏值

html - EPUB3音频按钮太大

javascript - 从 Facebook 获取点赞

javascript - 在 AngularJS 中将 JSON 对象绑定(bind)为 radio 数据

css - 如何在一个部分添加视频背景?