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

时间:2013-10-10 18:27:10

标签: javascript jquery

例如,要滚动到页面上的某个元素(即此处:How to go to a specific element on page?

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

我已经尝试了两者,他们都认为他们正在做这项工作。我错过了什么?

3 个答案:

答案 0 :(得分:23)

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

  1. 浏览器Firefox& IE使用此选择器的html部分
  2. “webkit类”中的浏览器例如:SafariChrome响应     身体。
  3. 虽然可以使用$(document)一起避免这个问题 代替。
  4. jQuery bug跟踪器specifically stating this issue here

    上还有一张票

答案 1 :(得分:0)

$('html, body')似乎是跨浏览器滚动动画的jquery解决方案。

如果您想要一个跨浏览器解决方案没有动画,您可以继续尝试:

$(window).scrollTop(0);
// Accepts int of pixels.

在最新的Chrome,Opera和FF上测试过它。似乎跨浏览器工作。 (除非有人可以确认它不适用于IE或Safari或其他人)

阅读有关jQuery scrollTop的更多信息。

答案 2 :(得分:0)

以下是跨浏览器动画的示例:

//('html, body') is the jquery solution for cross browser scroll animation $('html, body').animate({ scrollTop: $(".abc-container").offset().top+ "-50px" }, 300)