作者:忧伤的嫖客 | 来源:互联网 | 2023-10-10 13:17
提供时间精确的,流畅的页面缓动回到顶部效果(Demo)。***Scrolltotop.*@param{number}durationDurationoftheanimation*f
提供时间精确的,流畅的页面缓动回到顶部效果(Demo)。
/**
* Scroll to top.
* @param {number} duration Duration of the animation
*/
function scrollToTop(duration = 750) {
// More easeing-function: https://github.com/cferdinandi/smooth-scroll
let easeingFunction = t => t <0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;
let originScrollY = pageYOffset;
let originScrollX = pageXOffset; // Keep abscissa
let originTime = Date.now();
let passedTime = 0;
let _scrollToTop = () => {
if (passedTime passedTime = Date.now() - originTime;
requestAnimationFrame(_scrollToTop);
scrollTo(originScrollX, originScrollY * (1 - easeingFunction(passedTime / duration)));
}
};
_scrollToTop();
}