28

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

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

我都试过了,他们看起来都在做这项工作。我错过了什么?

4

3 回答 3

27

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

  1. 浏览器Firefox&IE利用这个选择器的 html 部分
  2. “webkit 类”中的浏览器例如:SafariChrome响应正文。
  3. 尽管可以通过使用$(document) 来避免这个问题。

jQuery bug tracker 上还有一张票,专门说明了这个问题。

于 2013-11-02T02:19:03.623 回答
0

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

如果你想要一个没有动画的跨浏览器解决方案,你可以试试这个:

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

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

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

于 2018-01-31T07:06:04.930 回答
0

这是跨浏览器动画的示例:

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

于 2020-04-20T15:15:02.220 回答