【问题标题】:why to use 'html, body' for scrollTop instead of just 'html'为什么要为 scrollTop 使用 'html, body' 而不仅仅是 'html'
【发布时间】:2012-08-26 16:38:01
【问题描述】:

我从 stackoverflow 获得了一个解决方案,可以滚动到页面顶部,例如

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

但我不知道为什么要为 scrollTop 使用 'html, body' 而不仅仅是 'html' ?

【问题讨论】:

标签: jquery


【解决方案1】:

某些浏览器将“整体”滚动应用于document.documentElement<html> 元素),而其他浏览器则应用于document.body<body> 元素)。为了与两者兼容,您必须对两者都应用滚动。

【讨论】:

  • 我想知道您是否知道哪些浏览器不支持滚动body,因为我现在找不到任何人。您是否有任何链接可以解释或提供有关您的答案的更多信息?
  • 除了@Alvarao 的查询之外,我还对这些行为之一是否违反规范或是否允许两者都感兴趣。
  • 这很麻烦,因为回调会触发两次。
  • @Synexis 你也可以用debounce回调函数代替。
  • 我没有进行详尽的测试,但看起来 Firefox(版本 41)和 IE11 仍然使用 document.documentElement aka <html> 作为最外层滚动父级。 Edge、Chrome 和 Safari 都通过document.body滚动主页。
猜你喜欢
  • 2018-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多