将 ScrollTop 与元素的 offset.top 进行比较
Compare ScrollTop With offset.top of element
我有这段代码来计算元素的顶部并与 scrollTop 进行比较并执行任何操作。
问题是,它没有进入条件 "if"
有什么想法吗?
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 选择器使用了 class 名称,这表明 class 可以有多个元素,但此代码仅适用于第一个这样的元素。所以要谨慎。
我有这段代码来计算元素的顶部并与 scrollTop 进行比较并执行任何操作。
问题是,它没有进入条件 "if"
有什么想法吗?
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 选择器使用了 class 名称,这表明 class 可以有多个元素,但此代码仅适用于第一个这样的元素。所以要谨慎。