Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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 测试用户是否可以在html页面上看到元素_Javascript_Jquery_Browser - Fatal编程技术网

Javascript 测试用户是否可以在html页面上看到元素

Javascript 测试用户是否可以在html页面上看到元素,javascript,jquery,browser,Javascript,Jquery,Browser,有没有办法知道某个元素在html页面上是否可见 像这样: 考虑到水平/垂直滚动位置、浏览器窗口的宽度/高度以及页面上元素的位置/大小,可能可以这样做,但我对jQuery几乎没有经验,所以我不知道如何做。可能有一个简单的函数可以调用,我不知道。您可以使用.is(':visible')选择器来检查元素当前是否在DOM中可见 编辑: 然而,正如@BenM所提到的,这并不能检查你页面上的元素是否超出了你的可滚动范围——在这种情况下,你可以使用一个很棒的小插件 下面是我用来做这件事的一些代码。经过测试,

有没有办法知道某个元素在html页面上是否可见

像这样:

考虑到水平/垂直滚动位置、浏览器窗口的宽度/高度以及页面上元素的位置/大小,可能可以这样做,但我对jQuery几乎没有经验,所以我不知道如何做。可能有一个简单的函数可以调用,我不知道。

您可以使用
.is(':visible')
选择器来检查元素当前是否在DOM中可见

编辑:


然而,正如@BenM所提到的,这并不能检查你页面上的元素是否超出了你的可滚动范围——在这种情况下,你可以使用一个很棒的小插件

下面是我用来做这件事的一些代码。经过测试,效果非常好

function isVisible($obj) {
    var top = $(window).scrollTop();
    var bottom = top + $(window).height();
    var objTop = $obj.offset().top;
    var objBottom = objTop + $obj.height();

    if(objTop < bottom && objBottom > top) {
        //some part of $obj is visible on the screen.
        //does not consider left/right, only vertical.
    }
}
函数可见($obj){
var top=$(window.scrollTop();
var bottom=top+$(窗口).height();
var objTop=$obj.offset().top;
var objBottom=objTop+$obj.height();
if(objToptop){
//$obj的某些部分在屏幕上可见。
/不考虑左/右,只考虑垂直。
}
}

不,你不能。它定义了它是否实际显示在DOM中,而不是用户在屏幕上是否可见。某个元素可能可见,但超出滚动范围。的可能重复。不过这个问题提得很好。