4 Star 48 Fork 22

爱动手的三角喵 / lutils

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
scrollTo.js 1.13 KB
一键复制 编辑 原始数据 按行查看 历史
爱动手的三角喵 提交于 2021-04-20 19:30 . update:2.0.1
import getScrollTop from './getScrollTop';
import setScrollTop from './setScrollTop';
const requestAnimFrame = (function () {
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
function (callback) {
window.setTimeout(callback, 1000 / 60);
};
})();
/**
*
* @desc 在${duration}时间内,滚动条平滑滚动到${to}指定位置
* @param {Number} to
* @param {Number} duration
*/
function scrollTo(to, duration) {
if (duration < 0) {
setScrollTop(to);
return
}
var diff = to - getScrollTop();
if (diff === 0) return
var step = diff / duration * 10;
requestAnimationFrame(
function () {
if (Math.abs(step) > Math.abs(diff)) {
setScrollTop(getScrollTop() + diff);
return;
}
setScrollTop(getScrollTop() + step);
if (diff > 0 && getScrollTop() >= to || diff < 0 && getScrollTop() <= to) {
return;
}
scrollTo(to, duration - 16);
});
}
export default scrollTo;
JavaScript
1
https://gitee.com/baojuhua/lutils.git
git@gitee.com:baojuhua/lutils.git
baojuhua
lutils
lutils
master

搜索帮助