javascript 滚动到顶部

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 滚动到顶部相关的知识,希望对你有一定的参考价值。

// scrollTop animation
export function scrollTop(el, from = 0, to, duration = 500, endCallback) {
  if (!window.requestAnimationFrame) {
    window.requestAnimationFrame =
      window.webkitRequestAnimationFrame ||
      window.mozRequestAnimationFrame ||
      window.msRequestAnimationFrame ||
      function(callback) {
        return window.setTimeout(callback, 1000 / 60)
      }
  }
  const difference = Math.abs(from - to)
  const step = Math.ceil((difference / duration) * 50)

  function scroll(start, end, step) {
    if (start === end) {
      endCallback && endCallback()
      return
    }

    let d = start + step > end ? end : start + step
    if (start > end) {
      d = start - step < end ? end : start - step
    }

    if (el === window) {
      window.scrollTo(d, d)
    } else {
      el.scrollTop = d
    }
    window.requestAnimationFrame(() => scroll(d, end, step))
  }
  scroll(from, to, step)
}

以上是关于javascript 滚动到顶部的主要内容,如果未能解决你的问题,请参考以下文章

跨浏览器 JavaScript(不是 jQuery...)滚动到顶部动画

跨浏览器 JavaScript(不是 jQuery...)滚动到顶部动画

javascript 滚动到顶部

javascript 滚动到顶部-50px

javascript 滚动到顶部#js #animate

javascript 滚动到顶部#js #animate