1.有滚动效果
// 设置滚动动画的持续时间
const duration = 500; // 毫秒
// 获取当前滚动位置
const start = document.documentElement.scrollTop || document.body.scrollTop;
// 计算滚动的目标位置
const end = 0; // 回到顶部
// 计算滚动的距离和步数
const distance = end - start;
const steps = Math.ceil(duration / 16); // 16ms为一帧
// 计算每一步的滚动距离
const stepDistance = distance / steps;
// 定义滚动的动画函数
function animateScroll(step) {
if (step >= steps) {
// 动画结束时,将滚动位置设置为目标位置
window.scrollTo(0, end);
return;
}
// 计算下一步的滚动位置
const nextScroll = start + step * stepDistance;
// 设置滚动位置并继续下一步动画
window.scrollTo(0, nextScroll);
// 使用requestAnimationFrame调用下一帧动画
requestAnimationFrame(() => {
animateScroll(step + 1);
}); }
// 启动滚动动画
animateScroll(0);
2.无滚动效果
window.scroll(0, 0)