javascript - 如何获取当前在浏览器视口(viewport)中显示的内容

标签 javascript html browser viewport

我怎样才能知道当前显示的是长文档的哪一部分?

例如如果我的 html 包含 1,000 行
1
2
3
...
999
1000

并且用户在显示第 500 行的中间附近,然后我想得到“500\n501\n502”或类似的东西。

显然大多数场景会比这更复杂,但我的要求是找到当前在浏览器视口(viewport)中显示的文本,以便我可以显示适合当前文本的状态值。

谢谢 马丁

最佳答案

如果你有 jQuery,你可以使用这个函数来检查 DOM 元素当前是否显示在视口(viewport)中:

function isInView(elem) {

    var docViewTop = $(window).scrollTop();
    var docViewBottom = docViewTop + $(window).height();

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

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

关于javascript - 如何获取当前在浏览器视口(viewport)中显示的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3658496/

相关文章:

javascript - JQuery Mobile 全站点重定向

javascript - JqG​​rid 不通过移动选项卡加载

cross-platform - 用于跨平台桌面应用程序的嵌入式 Web 浏览器引擎?

ajax - 不同浏览器的超时行为?

javascript - 文本选择(准备使用剪贴板操作)

javascript - 日期的 Angular ng-pattern 在 IE9 上不起作用

javascript - 准确跟踪由 $q.defer 调用的 Angular 的事件/完成 promise

javascript - 在 DOM 元素中使用变量

javascript - Keyup 事件处理程序显示性能低下

javascript - 这里为什么需要分号?