const scrollAnimation = (
dom = document.documentElement,
currentY: number,
targetY: number,
) => {
// 获取当前位置方法
// const currentY = document.documentElement.scrollTop || document.body.scrollTop
// 计算需要移动的距离
let needScrollTop = targetY - currentY;
let _currentY = currentY;
let h = setInterval(() => {
// 一次调用滑动帧数,每次调用会不一样
const dist = Math.ceil(needScrollTop / 10);
_currentY += dist;
dom.scrollTop = _currentY;
// 如果移动幅度小于十个像素,直接移动,否则使用setInterval继续循环,实现动画效果
if (Math.abs(_currentY - targetY) < 10) {
clearInterval(h)
dom.scrollTop = targetY;
}
}, 1);
};
export default scrollAnimation;
页面滚动条动画
最新推荐文章于 2023-11-20 11:08:20 发布