触发 $(window).scroll();

24
当我调用 $("body").animate({scrollTop: someValue}); 时,我也希望 $(window).scroll(function() { }); 能被调用。我该如何实现?
我尝试了 $(window).trigger("scroll")$(window).triggerHandler("scroll") ,但都没有成功。 代码 编辑: 问题已解决。是因为我的 $(window).scroll(function() { }); 中有一个 if 语句导致的问题。

什么是animationType?如果你在引号内使用animationType,比如'easeIn',会发生什么? - Om3ga
@al0neevenings 这不是问题所在。正文部分可以滚动,但 $(window).scrollU(); 没有被调用。 - Sawny
1
你能否也发布绑定到scroll方法的内容在做什么? - Gabriele Petrioli
@GabyakaG.Petrioli 噢... 问题出在这里。我有一个if语句防止了函数的执行... - Sawny
3个回答

50

9

将其应用于 bodyhtml 两者,因为它们并不一致。(例如,FF 使用 html 进行滚动,而 Chrome 使用 body

$("html, body").animate({scrollTop: someValue});

demo at http://jsfiddle.net/vzyVh/


  1. 没有解决我的问题。
  2. 然后回调被调用两次。
- Sawny
@sawny,只有在您特别设置了CSS以允许htmlbody同时滚动时,它们才会同时滚动。默认情况下,只有其中一个会滚动。 此外:应用于windowscroll方法不仅会被调用一次,而是每个滚动步骤都会被调用。 - Gabriele Petrioli
1
将此答案与 http://stackoverflow.com/a/12792245/1504300 混合,以实现优雅的滚动到底部。 - reallynice

2
你可以尝试以下代码 - 这里我正在滚动到具有id“one”的div标记的顶部。
$('html,body').animate({ scrollTop: $('#one').offset().top }, 'slow');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接