将ScrollTop与元素的offset.top进行比较

Compare ScrollTop With offset.top of element

本文关键字:top 比较 offset ScrollTop 元素      更新时间:2023-09-26

我有这个代码来计算元素的顶部,并与scrollTop进行比较,然后执行任何操作。

问题是,它没有进入条件"如果"

知道吗?

jQuery( document ).ready(function() {
   var h = parseInt(jQuery(".noticiasFoldsHome").height()) / 2 ;
   var x = parseInt(jQuery(".noticiasFoldsHome").offset().top) - parseInt(h);
   jQuery(window).scroll(function (event) {
        var scroll = jQuery(window).scrollTop();
        //console.log(scroll);
        if ( parseInt(scroll) == parseInt(x) ){
            console.log("entro");
        }
    });

});

您需要增加高度,而不是减去高度。

var x = parseInt(jQuery(".noticiasFoldsHome").offset().top) + parseInt(h);

我想当用户输入某个元素时,您正在尝试做一些事情,如果是这样的话,您可能希望在if条件中使用一个范围,比如大于元素顶部,小于元素底部。

滚动事件不是为每个像素调用的,而是在滚动中断时调用的。它可以像这样0、79、156、210、350等等,基本上是随机的。因此,通过尝试将其与单个值进行比较,你实际上是在碰碰运气。你最好使用一些范围。元素应该在元素顶部和元素顶部之间+元素的总高度

此外,您已经为jquery选择器使用了一个类名,这表明该类可以有多个元素,但此代码只能用于第一个这样的元素。所以要谨慎。