2012-10-27 85 views
15

当我打电话给$("body").animate({scrollTop: someValue});我想$(window).scroll(function() { });也被调用。我怎样才能做到这一点?

我试过$(window).trigger("scroll")$(window).triggerHandler("scroll")没有成功。

The code

编辑: 问题解决了。我的$(window).scroll(function() { });中有一个if导致了问题。

+0

什么是动画类型?那么如果你在使用'easeIn'这样的引号内使用animationType呢? – 2619

+0

@ al0neevenings这不是问题。正文部分滚动,但'$(window).scrollU();'不会被调用。 – Sawny

+1

你还可以发布绑定到'scroll'的方法吗? –

回答

7

它同时适用于bodyhtml,因为它是不相符的。(例如,FF采用html滚动,而镀铬使用body)在http://jsfiddle.net/vzyVh/

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

演示

+0

1)不解决我的问题。 2)然后回调被调用两次。 – Sawny

+0

@sawny,只有当你特别让你的CSS同时允许'html'和'body'滚动。默认情况下只有其中一个滚动条.. 此外:应用于'window'的'scroll'方法不会只调用一次。它被称为每个滚动步骤.. –

+1

混合此答案与http://stackoverflow.com/a/12792245/1504300优雅滚动到底部。 – reallynice

1

你可以试试下面的代码 - 我在这里滚动到具有ID “一个” 我的div标签上。

$('html,body').animate({ scrollTop: $('#one').offset().top }, 'slow'); 
相关问题