检查元素在可滚动div中是否可见

时间:2017-01-31 16:27:07

标签: javascript jquery plugins viewport

首先,这可能被认为是一个重复的问题 - 但是我在搜索时找不到答案: jQuery check if element is visible inside scrollable div

我似乎无法找到一个解决方案,用于检查元素在具有滚动条的父div中是否可见,显然有一些方法可以使用来自父元素的偏移来实现此目的,但我在查看是否有一个全面的解决方案,将检查每个相同的选择器包装为一个插件,以便可以不断检查。

我使用的当前插件仅限于实际的窗口视口,我不相信可以将其更改为可滚动的div。

当前代码:

;(function($, win) {
  $.fn.inViewport = function(cb) {
     return this.each(function(i,el){
       function visPx(){
         var H = $(this).height(),
             r = el.getBoundingClientRect(), t=r.top, b=r.bottom;
         return cb.call(el, Math.max(0, t>0? H-t : (b<H?b:H)));  
       } visPx();
       $(win).on("resize scroll", visPx);
     });
  };
}(jQuery, window));

0 个答案:

没有答案