Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查可滚动div中的元素是否可见_Javascript_Jquery_Plugins_Viewport - Fatal编程技术网

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

Javascript 检查可滚动div中的元素是否可见,javascript,jquery,plugins,viewport,Javascript,Jquery,Plugins,Viewport,首先,这可能被认为是一个重复的问题-但是我在搜索时发现的问题没有得到答案: 我似乎找不到一个解决方案来检查一个元素在一个有滚动条的父div中是否可见,显然有一些方法可以做到这一点,偏移量是从父元素开始的,但我想知道是否有一个全面的解决方案,可以检查包装成插件的同一个选择器中的每一个,这样就可以不断地检查它 我目前使用的插件仅限于实际的窗口视口,我不相信可以将其更改为可滚动的div 当前代码: ;(function($, win) { $.fn.inViewport = function(c

首先,这可能被认为是一个重复的问题-但是我在搜索时发现的问题没有得到答案:

我似乎找不到一个解决方案来检查一个元素在一个有滚动条的父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));
;(功能($,win){
$.fn.inViewport=函数(cb){
返回此值。每个函数(i,el){
函数visPx(){
var H=$(this).height(),
r=el.getBoundingClientRect(),t=r.top,b=r.bottom;
返回cb.call(el,Math.max(0,t>0)H-t:(b