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

时间:2016-01-17 20:49:48

标签: jquery scroll visible

好的,所以我使用以下代码检查一个元素是否在屏幕上可见。

(function($) {

/**
    * Copyright 2012, Digital Fusion
    * Licensed under the MIT license.
    * http://teamdf.com/jquery-plugins/license/
    *
    * @author Sam Sehnert
    * @desc A small plugin that checks whether elements are within
    *     the user visible viewport of a web browser.
    *     only accounts for vertical position, not horizontal.
 */

$.fn.visible = function(partial) {

    var $t            = $(this),
        $w            = $(window),
        viewTop       = $w.scrollTop(),
        viewBottom    = viewTop + $w.height(),
        _top          = $t.offset().top,
        _bottom       = _top + $t.height(),
        compareTop    = partial === true ? _bottom : _top,
        compareBottom = partial === true ? _top : _bottom;

  return ((compareBottom <= viewBottom) && (compareTop >= viewTop));

};

})(jQuery);

但是,我想使用这段代码,以便检查它是否在可滚动元素中可见。特别是我用于主要内容的主要标签。我将如何更改此代码以使其适用于我的可滚动元素? 我不太清楚该怎么做。我已经尝试将$ w变量更改为$(&#39; main&#39;)但这似乎表现得很奇怪。

1 个答案:

答案 0 :(得分:0)

  

但是,我想使用这段代码,以便检查它是否在可滚动元素中可见。

该插件仅限于检测身体的直接孩子。这几乎使得任何嵌套元素都无法被插件检测到。见explanation