javascript 光滑的滚动顶部
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 光滑的滚动顶部相关的知识,希望对你有一定的参考价值。
function scrollToSmoothly(pos, time) {
if (typeof pos !== 'number') {
pos = parseFloat(pos);
}
if (isNaN(pos)) {
console.warn('Position must be a number or a numeric String.');
throw 'Position must be a number';
}
if (pos < 0 || time < 0) {
return;
}
let currentPos = window.scrollY || window.screenTop;
let start = null;
time = time || 500;
window.requestAnimationFrame(function step(currentTime) {
start = !start ? currentTime : start;
if (currentPos < pos) {
let progress = currentTime - start;
window.scrollTo(
0,
((pos - currentPos) * progress) / time + currentPos
);
if (progress < time) {
window.requestAnimationFrame(step);
} else {
window.scrollTo(0, pos);
}
} else {
let progress = currentTime - start;
window.scrollTo(
0,
currentPos - ((currentPos - pos) * progress) / time
);
if (progress < time) {
window.requestAnimationFrame(step);
} else {
window.scrollTo(0, pos);
}
}
});
}
以上是关于javascript 光滑的滚动顶部的主要内容,如果未能解决你的问题,请参考以下文章
javascript 锚标签链接光滑滚动
使用 JavaScript 滚动到页面顶部?
Javascript 滚动顶部
使用 JavaScript/jQuery 滚动到 DIV 的顶部?
javascript 滚动偏移上的导航顶部动画
javascript 滚动顶部