Javascript jQuery scrollTop()无法在';车身';Firefox中的元素
我不明白为什么scrollTop()jquery函数在Firefox的“body”元素上不起作用Javascript jQuery scrollTop()无法在';车身';Firefox中的元素,javascript,jquery,jquery-selectors,scroll,Javascript,Jquery,Jquery Selectors,Scroll,我不明白为什么scrollTop()jquery函数在Firefox的“body”元素上不起作用 $('body').scrollTop(0); 我使用以下方法解决了问题: $(window).scrollTop(0); 但是,根据jquery文档,scrollTop()应该适用于所有元素,如本例中所示: $( "div.demo" ).scrollTop( 300 ); 我也用“nav”和“main”进行了测试,但都不起作用。试试这个: 要滚动的div: <div id="top"
$('body').scrollTop(0);
我使用以下方法解决了问题:
$(window).scrollTop(0);
但是,根据jquery文档,scrollTop()应该适用于所有元素,如本例中所示:
$( "div.demo" ).scrollTop( 300 );
我也用“nav”和“main”进行了测试,但都不起作用。试试这个:
要滚动的div:
<div id="top"></div>
如果希望浏览器之间保持一致,请使用
窗口
$(window).scrollTop();
滚动
$(窗口)。滚动顶部(0)似乎所有浏览器IE9+都支持code>(可能是IE8,但我不再测试它)
动画滚动条
如果要设置滚动动画,jQuery在使用窗口对象(1.11.2测试)时会返回一个错误。相反,要制作滚动动画,最好同时使用html
和body
来覆盖使用其中任何一个的引擎。因此:
$('html,body')。动画({scrollTop:0},500)代码>将在半秒钟内滚动到浏览器顶部
滚动位置
您不能使用$('html,body').scrollTop()
查找页面的当前滚动位置-至少Chrome不支持此操作(始终返回0)。相反,为了一致地找到页面的滚动位置,有必要使用$(window.scrollTop()代码>非常简单的代码,工作100%
$('body, html').scrollTop(0);
您是否尝试过$(“body,html”).scrollTop(0)代码>?对于浏览器窗口,仅滚动选项为$(窗口),在其他元素上,仅当其父元素具有scrollbar时,scrollTop才能工作。我在chrome中进行了测试,scrollTop()和“body”选择器工作正常。这似乎是Firefox的问题。事实上,$(“body,html”)。scrollTop(0)也在Firefox中工作。所以问题是:为什么需要在firefox中为选择器指定上下文而不是在chrome中?谢谢,但我不想设置滚动动画。我可以使用$(窗口)滚动到顶部。滚动顶部(0)
或$(“正文,html”)。滚动顶部(0)
,但它没有解释为什么$(“正文”)。滚动顶部(0)
在Firefox中不起作用,而在Chrome中起作用。@j Firefox在html级别而不是正文级别上有溢出,因为基于webkit的browserI看到了类似的情况,并意识到我没有完全重新加载文档。一旦我将光标放在位置栏并按enter键,它就工作了。只是一个想法-祝你好运。@Marcus如果你在html
和body
上查询overflow
,在这两种浏览器中,它们都返回visible
你的最后一段是救命的。
$('body, html').scrollTop(0);