javascript - 纯 JavaScript 中滚动到顶部动画?无法使用 jQuery

标签 javascript jquery

有没有简单的方法来转换它:

$("html, body").animate({ scrollTop: $(document).height() }, 10000);

变成纯JavaScript?我需要能够在没有可用 jQuery 的设置中运行 js。有任何想法吗?谢谢。

最佳答案

您可以通过逐步更改 scrollTop property 来实现此目的在一段时间内。

var scrollingElement = document.body;
var endScrollPosition = scrollingElement.clientHeight;
var timeInMS = 10000;
var startTime = new Date().getTime();
var endTime = new Date(new Date().getTime() + timeInMS).getTime() - startTime;

// Use requestAnimationFrame to ensure a smooth transition
requestAnimationFrame(function animate() {
  // Determine what percentage of the total time has passed
  var now = new Date().getTime() - startTime;
  var ratio = now / endTime;
  if (ratio > 1) {
    ratio = 1;
  }
  
  scrollingElement.scrollTop = endScrollPosition * ratio;
  if (ratio < 1) {
    requestAnimationFrame(animate);
  }
});
<h1>Padding</h1>
<h1>Padding</h1>
<h1>Padding</h1>
<h1>Padding</h1>
<h1>Padding</h1>
<h1>Padding</h1>
<h1>Padding</h1>
<h1>Padding</h1>
<h1>Padding</h1>
<h1>Padding</h1>
<h1>Padding</h1>
<h1>Padding</h1>
<h1>Padding</h1>
<h1>Padding</h1>
<h1>Padding</h1>
<h1>Padding</h1>

关于javascript - 纯 JavaScript 中滚动到顶部动画?无法使用 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31792993/

相关文章:

javascript - Facebook 错误 100 : You cannot specify a scheduled publish time on a published post

javascript - jQueryUI 可拖动 : Error with dynamically added element

javascript - Twitter 框不会自动填充报价

javascript - 迭代对象属性,属性长度等于 JQuery 中的数字

javascript - 更改标签但保留属性和内容 -- jQuery/Javascript

javascript - 理解 jQuery 源代码中过于简单的模块的用途

java - 将 Tapestry 应用程序从 5.0.18 升级到 5.3.2

javascript - 获取 ESLint : Unnecessary escape character

javascript - MongoDB:更新嵌套数组元素或如果不存在则将其插入

javascript - DataTables 行选择器如何工作?