有没有办法通过Javascript访问是否在屏幕上呈现网页的一部分?

时间:2016-09-02 19:11:43

标签: javascript iframe gpu

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

我只是想到这可能是GPU可能已经拥有的东西,这样可以让它在页面上提供更好的渲染效果,我想知道是否有人知道这是否是数据可通过API / lib(如OpenGL)访问。

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

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

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

1 个答案:

答案 0 :(得分:1)

您可以计算对象是否在视口内。

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>');
    }

  }
})