$('html,body').animate和$('body').animate之间的区别?

Lio*_*ior 26 javascript jquery

例如,滚动到页面上的某个元素(即这里:如何转到页面上的特定元素?)

$("#fromTHIS").click(function() {
    $("html, body").animate({ scrollTop: $("#toTHIS").offset().top }, 500);
    return true;
});
Run Code Online (Sandbox Code Playgroud)

我试过了两个,他们都认为他们正在做这个工作.我错过了什么?

Joe*_*Joe 25

您为BOTH使用选择器的原因$('html, body')是因为Web浏览器不一致.经过几次测试后,我发现了三件事:

  1. 浏览器FirefoxIE利用此选择器的html部分
  2. "webkit类"中的浏览器例如:SafariChrome响应身体.
  3. 虽然可以通过使用$(document) 来避免这个问题.

jQuery bug跟踪器上还有一张票,专门说明了这个问题

  • 正如史蒂夫提到的那样@Joe,$(文件)它在Firefox中不起作用.我尝试使用$('html,body')并且它有效.但是使用该文档并没有做任何事情.你应该抓你的*第三件事*. (3认同)
  • 不幸的是,您的解决方案不适用于FF v30.0.太可惜了! (2认同)