上干货..
function scrollTo(y, duration) {
/*y:目标纵坐标,duration:时间(毫秒)*/
var scrollTop = document.body.scrollTop;/*页面当前滚动距离*/
var distance = y - scrollTop;/*结果大于0,说明目标在下方,小于0,说明目标在上方*/
var scrollCount = duration / 10;/*10毫秒滚动一次,计算滚动次数*/
var everyDistance = distance / scrollCount/*滚动距离除以滚动次数计算每次滚动距离*/
for (var index = 1; index <= scrollCount; index++) /*循环设置scrollBy事件,在duration之内,完成滚动效果*/
setTimeout(function () { window.scrollBy(0, everyDistance) }, 10 * index);
}下载本文