Javascript 检测div何时触顶jquery

Javascript 检测div何时触顶jquery,javascript,jquery,Javascript,Jquery,我试图用Jquery/Javascript检测div何时位于页面顶部。有人知道我从哪里开始吗?您可以使用jQuery收听滚动事件,每次滚动事件发生变化时,获取div的偏移量值并将其与0进行比较。我将使用如下函数: function elementAtViewportTop(elem) { if(!elem || typeof elem !== "object") return false; if(elem instanceof jQuery) elem = elem[0];

我试图用Jquery/Javascript检测div何时位于页面顶部。有人知道我从哪里开始吗?

您可以使用jQuery收听滚动事件,每次滚动事件发生变化时,获取div的偏移量值并将其与0进行比较。

我将使用如下函数:

function elementAtViewportTop(elem) {
    if(!elem || typeof elem !== "object") return false;
    if(elem instanceof jQuery) elem = elem[0];

    var elemClientRect = elem.getBoundingClientRect();

    return (elemClientRect.top <= 0 && elemClientRect.top > -(elemClientRect.height));
}
功能元素在视口顶部(元素){
如果(!elem | | typeof elem!=“object”)返回false;
如果(jQuery的elem instanceof)elem=elem[0];
var elemClientRect=elem.getBoundingClientRect();
返回值(elemClientRect.top-(elemClientRect.height));
}
elem.getBoundingClientRect()。如果元素到达窗口的顶部(),则top
将为零。 当您为scroll to(滚动到)窗口添加事件侦听器并每次在元素上调用该函数时,它将正常工作:


你的意思是div offset top==0?不确定,我只想在它位于文档顶部时更改它的css。我真的没有任何javascript或jquery的经验!“不确定,我只想在它位于文档顶部时更改它的css”-你的意思是当它滚动到窗口顶部时?是的,所以一旦它滚动并到达窗口顶部。事实上,我放置的东西绝对且相对地影响了这一点吗?似乎对我不起作用。