javascript - 有没有办法通过 JavaScript 来访问网页的一部分是否正在屏幕上呈现?

标签 javascript iframe gpu

目前我们的逻辑在客户端页面的 iframe 内运行。我们现在请求检测 iFrame 当前是否在查看窗口中(滚动到屏幕外)。

我只是有一个想法,这可能是 GPU 可能已经拥有的东西,这将允许它在页面上提供更好的性能,关于它正在渲染的内容,我想知道是否有人知道这是否数据可以通过 API/lib(例如 OpenGL)访问。

我知道提供实际的像素信息可能是一个很大的安全问题,但是只要访问是否正在渲染特定的 iFrame 将有助于可见性检测。

有谁知道是否有办法做到这一点?到目前为止,目前的阅读并未表明这是可能的,但我正在继续我的搜索,并认为我也应该在这里发布。

任何信息或方向都会有帮助。谢谢!

最佳答案

您可以计算该对象是否在您的视口(viewport)内。

http://plnkr.co/edit/91gybbZ7sYVELEYvy1IK?p=preview

$(document).ready(function() {
  myElement = $('.someObject');
  window.onscroll = function() {

    var screenTop = $(window).scrollTop();
    var screenBottom = screenTop + $(window).height();    
    var elTop = $(myElement).offset().top;
    var elBottom = elTop + $(myElement).height();

    var info = 'screenTop:' + screenTop + ' screenBottom:' + screenBottom + ' elTop:' + elTop + ' elBottom:' + elBottom;

    if((elBottom <= screenBottom) && (elTop >= screenTop)) {
      $('.info').html('Element is in view + <small>' + info + '</small>');
    } else {
      $('.info').html('Element is out of view + <small>' + info + '</small>');
    }

  }
})

关于javascript - 有没有办法通过 JavaScript 来访问网页的一部分是否正在屏幕上呈现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39299291/

相关文章:

python - 更新我的 NVIDIA 版本过时错误

javascript - 为 `&lt;input type="图像指定 click() 的坐标">`

javascript - 使用 .off() 删除多个相同的事件处理程序

javascript - 如何在动态元素上添加多个类,其中一个类的数字递增?

javascript - 如何访问Iframe父窗口的方法[Chrome浏览器]

opengl - AMD Mantle API 文档

javascript - JavaScript 的排序(compareFunction)是如何工作的?

facebook - HTTP 页面中的 HTTPS iframe,浏览器错误警告

javascript - 如何处理 iframe 中的 javascript 错误?

python - keras multiple_gpu_model 导致 "Can' t pickle 模块对象“错误