📅  最后修改于: 2023-12-03 15:11:57.129000             🧑  作者: Mango
在网页开发中,经常会使用“滚动到顶部”按钮来让用户快速返回网页的顶部。但是,这个按钮通常只有简单的显示和隐藏功能,对用户来说使用不够便捷。我们可以通过改变滚动条的速度和角度来实现更好的用户体验。本文将介绍如何使用Javascript实现角度路线更改滚动到顶部。
// 获取“回到顶部”按钮的元素和页面高度
const toTopBtn = document.querySelector('.to-top-btn');
const pageHeight = document.documentElement.scrollHeight || document.body.scrollHeight;
// 给按钮绑定click事件,调用回到顶部函数
toTopBtn.addEventListener('click', scrollToTop);
// 回到顶部函数
function scrollToTop() {
// 利用requestAnimationFrame()实现平滑滚动效果
const start = document.documentElement.scrollTop || document.body.scrollTop;
const end = 0;
const duration = 800;
const startTime = new Date().getTime();
const scroll = () => {
const timeElapse = new Date().getTime() - startTime;
let position = Math.floor(easeInOutQuad(timeElapse, start, end - start, duration));
// 利用Math函数随机生成角度
const angle = Math.floor(Math.random() * 3) + 1;
// 计算滚动条的位置,使其按照角度路线曲线滚动
position = position - angle;
if (position <= 0) {
window.scrollTo(0, 0);
return;
}
window.scrollTo(0, position);
if (timeElapse < duration) requestAnimationFrame(scroll);
};
requestAnimationFrame(scroll);
}
// 缓动函数,实现平滑滚动效果
function easeInOutQuad(t, b, c, d) {
t /= d / 2;
if (t < 1) return c / 2 * t * t + b;
t--;
return -c / 2 * (t * (t - 2) - 1) + b;
}
通过改变滚动条的滚动路径,使之自然而流畅,可以提高用户对网页的满意度和使用体验。该功能通过Javascript实现,代码简单易懂,容易上手。