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