jQuery scrollTop()没有工作' body' Firefox中的元素

时间:2014-02-04 15:40:11

标签: javascript jquery jquery-selectors scroll

我不明白为什么scrollTop()jquery函数不能处理Firefox上的'body'元素。

$('body').scrollTop(0);

我使用以下方法解决了我的问题:

$(window).scrollTop(0);

但是根据jquery文档,scrollTop()应该适用于这个例子中的所有元素:

$( "div.demo" ).scrollTop( 300 );

我还测试了'nav'和'main',但它也没有用。

4 个答案:

答案 0 :(得分:28)

<强>滚动

所有浏览器IE9 +似乎都支持

$(window).scrollTop(0);(可能是IE8,但我不再对它进行测试)。

动画滚动

如果要为滚动设置动画,如果使用window对象(已测试1.11.2),jQuery将返回错误。相反,要为滚动设置动画,最好同时使用htmlbody来涵盖使用其中任何一个的引擎。所以:

$('html, body').animate({scrollTop:0},500);将在半秒内滚动到浏览器的顶部。

滚动位置

您无法使用$('html,body').scrollTop()查找页面的当前滚动位置 - 至少Chrome不支持此功能(始终返回0)。相反,要始终找到页面的滚动位置,必须使用$(window).scrollTop();

答案 1 :(得分:10)

如果您希望浏览器之间保持一致,请使用window

$(window).scrollTop();

答案 2 :(得分:2)

试试这个:

你的div要滚动:

<div id="top"></div>

并滚动顶部js:

$('html,body').animate({scrollTop: $('#top').offset().top},'slow');

答案 3 :(得分:0)

非常简单的代码,可以100%工作

$('body, html').scrollTop(0);