将ScrollTop与offset.top of element进行比较

时间:2016-01-06 15:24:31

标签: javascript jquery scrolltop

我有这个代码来计算元素的顶部并与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");
        }

    });



});

1 个答案:

答案 0 :(得分:2)

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

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

我猜你在用户输入一些元素时尝试做某事,如果是这样你可能想要在条件中使用范围,如大于元素的顶部而不是元素的底部。

不为每个像素调用

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

之间

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