为什么赢了';我的jQuery函数是否检测视口中的元素可见性?

为什么赢了';我的jQuery函数是否检测视口中的元素可见性?,jquery,Jquery,这个问题与我20小时前发布的一个问题有关。我已经尝试了2-3种方法,仍然无法解决它。我想做的是检测一个名为#cover的HTML元素的可见性,并在该元素上执行动画。“可见性”是指设备视口中的部分或完全可见性 .is(:visible)的工作原理是,一旦呈现页面,就会检测到元素并触发警报。但这不是我需要的 我尝试过的最新功能是: $.fn.isVisible = function() { var rect = this[0].getBoundingClientRect(); return (

这个问题与我20小时前发布的一个问题有关。我已经尝试了2-3种方法,仍然无法解决它。我想做的是检测一个名为#cover的HTML元素的可见性,并在该元素上执行动画。“可见性”是指设备视口中的部分或完全可见性

.is(:visible)的工作原理是,一旦呈现页面,就会检测到元素并触发警报。但这不是我需要的

我尝试过的最新功能是:

$.fn.isVisible = function() {
var rect = this[0].getBoundingClientRect();
return (
    (rect.height > 0 || rect.width > 0) &&
    rect.bottom >= 0 &&
    rect.right >= 0 &&
    rect.top <= (window.innerHeight || document.documentElement.clientHeight) &&
    rect.left <= (window.innerWidth || document.documentElement.clientWidth)
);
};

    if (isVisible(document.getElementById("cover"))) {
    alert('Cover VISIBLE');
}

else alert('Cover NOT VISIBLE');
$.fn.isVisible=函数(){
var rect=此[0]。getBoundingClientRect();
返回(
(矩形高度>0 | |矩形宽度>0)&&
rect.bottom>=0&&
rect.right>=0&&
rect.top试试

var thisElement = document.getElementById("cover");
if ($(thisElement).isVisible() {
  alert('Cover VISIBLE');
}
else {
  alert('Cover NOT VISIBLE');
}

…既然您创建了
isVisible
函数作为jQuery函数,它应该在jQuery元素上运行。

谢谢各位…我通过返回我以前尝试过但未成功的isInViewport函数并使其工作,实现了我想要的功能。

注释中不能有换行符。这也不起作用她的警报被触发。这就好像函数本身没有被触发一样。对脚本的调用位于HTML的头部分:您可以控制台日志
thismelement
查看它是否被正确捕获吗?然后尝试执行
$(thismelement)。isVisible()
如果捕捉正确……这应该可以指示发生了什么。