当前位置: 首页 > 面试题库 >

JavaScript滚动后如何检查元素是否可见?

南门鸿雪
2023-03-14
问题内容

我正在通过AJAX加载元素。仅当您向下滚动页面时,其中一些才可见。
我有什么办法可以知道某个元素现在是否位于页面的可见部分?


问题答案:

这应该可以解决问题:

function isScrolledIntoView(elem)
{
    var docViewTop = $(window).scrollTop();
    var docViewBottom = docViewTop + $(window).height();

    var elemTop = $(elem).offset().top;
    var elemBottom = elemTop + $(elem).height();

    return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}

简单的实用程序功能 这将允许您调用一个实用程序功能,该功能接受您要查找的元素,并且您希望该元素完全可见还是部分可见。

function Utils() {

}

Utils.prototype = {
    constructor: Utils,
    isElementInView: function (element, fullyInView) {
        var pageTop = $(window).scrollTop();
        var pageBottom = pageTop + $(window).height();
        var elementTop = $(element).offset().top;
        var elementBottom = elementTop + $(element).height();

        if (fullyInView === true) {
            return ((pageTop < elementTop) && (pageBottom > elementBottom));
        } else {
            return ((elementTop <= pageBottom) && (elementBottom >= pageTop));
        }
    }
};

var Utils = new Utils();

用法

var isElementInView = Utils.isElementInView($('#flyout-left-container'), false);

if (isElementInView) {
    console.log('in view');
} else {
    console.log('out of view');
}


 类似资料:
  • 问题内容: 随着selenium2.0a2我有麻烦检查如果一个元素是可见的。 返回,不幸的是没有提供方法。我可以使用或两者都抛出一个来解决这个问题,但这感觉很脏。 还有更好的主意吗? 问题答案: 应该管用。

  • 问题内容: 在JavaScript中,如何检查元素是否实际可见? 我不仅仅是指检查and 属性。我的意思是,检查该元素是否不是 要么 在另一个元素下面 滚动到屏幕边缘 由于技术原因,我不能包含任何脚本。但是我可以使用Prototype,因为它已经在页面上了。 问题答案: 对于重点2。 我发现没有人建议使用,对我来说,这是测试某个元素是嵌套还是隐藏的最快方法。您可以将目标元素的偏移量传递给函数。 这

  • 本文向大家介绍如何检查可见DOM中是否存在元素?,包括了如何检查可见DOM中是否存在元素?的使用技巧和注意事项,需要的朋友参考一下 我们可以使用Node.contains方法执行此检查。Node.contains()方法返回一个布尔值,该值指示节点是否为给定节点的后代,即节点本身,其直接子级(childNodes)之一,子级的直接子级之一,依此类推。 示例 例如,您要查找具有id test的元素,

  • 问题内容: 我正在尝试使用量角器测试元素是否可见。元素的外观如下: 在chrome控制台中时,我可以使用此jQuery选择器测试该元素是否可见: 但是,当我尝试在量角器中执行相同操作时,在运行时出现此错误: 为什么这无效?如何使用量角器检查可见性? 问题答案: 应该这样做: 记住量角器的不是jQuery和不_尚_的一部分提供CSS选择器+伪选择

  • 我有一对夫妇的变量,我想保存或不保存到数据库取决于是否我已经设置为隐藏/可见的javascript函数,我已经搜索了一段时间,但找不到任何东西。谢谢!

  • 问题内容: 有什么方法可以检查元素在纯JS(无jQuery)中是否可见? 因此,例如,在此页面中:PerformanceBikes,如果将鼠标悬停在Deals上(在顶部菜单上),则会显示一个交易窗口,但开始时未显示。它在HTML中,但不可见。 那么,给定一个DOM元素,我如何检查它是否可见?我试过了: 但它似乎不起作用。我想知道应该检查哪些属性。我想到: 还有其他我可能会想念的东西吗? 问题答案: