Javascript-在滚动完成后检查屏幕上的位置

Javascript-在滚动完成后检查屏幕上的位置,javascript,jquery,Javascript,Jquery,我有一个脚本,在单击或页面加载时向下滚动到一个元素,但在加载图像时,我需要触发向下滚动,因为我在加载页面之前滚动有问题。现在我需要解决的问题是,当页面已经被加载,并且如果它处于应该的位置,它就不会再次滚动。如何检查页面是否已滚动到该位置: $('html,body').animate({ scrollTop: magazineDetailOffset }); $('#cover-image').load(function() { console.log($(".magazine-det

我有一个脚本,在单击或页面加载时向下滚动到一个元素,但在加载图像时,我需要触发向下滚动,因为我在加载页面之前滚动有问题。现在我需要解决的问题是,当页面已经被加载,并且如果它处于应该的位置,它就不会再次滚动。如何检查页面是否已滚动到该位置:

$('html,body').animate({
  scrollTop: magazineDetailOffset
});

$('#cover-image').load(function() {
  console.log($(".magazine-detail").offset().top - 80);
  console.log($(window).scrollTop());
  $('html,body').animate({
     scrollTop: magazineDetailOffset
  });
});
所以,基本上,我需要检查元素是否已经滚动到顶部,只有在没有滚动到顶部时,才再次进行滚动动画

$('#cover-image').load(function() {
  if (theElementIsNotScrolledToTop) {
    $('html,body').animate({
       scrollTop: magazineDetailOffset
    });
  }
});
但不知道怎么做?
我已经尝试过检查
$(document).scrollTop()
,但这总是会给我
0

如果您想检查图像是否正好位于顶部(而不是在下方或上方),您可以将
元素设置为未滚动到顶部

theElementIsNotScrolledToTop = $('#cover-image').offset().top !== $(window).scrollTop()

但是,如果你甚至是一个像素关闭,它仍然会火,所以你可能想添加一些逻辑来找到你正在寻找的阈值,希望这有帮助

$(window).scrollTop()
在加载函数执行时也给出了
0
,因为在加载函数执行时没有滚动。所以我不能这样比较。@Leff您是否尝试过使用setTimeout延迟执行?不,这在本场景中是不需要的