有没有简单的方法来转换它:
$("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/