Skip to content

实现元素平滑滚动到父元素顶部

js
function scrollToTop(dom, drag = 8) {
  let lastTop = null
  const scroll = () => {
    const top = dom.scrollTop
    // 如果还没滚到顶部,就回滚,则需要取消动画
    if (lastTop !== null && top > lastTop) {
        window.cancelAnimationFrame(scroll)
        return
    }
    if (top > 0) {
      dom.scrollTop = top - top / drag // 阻力,数值越大,滑动越慢
      lastTop = top
      window.requestAnimationFrame(scroll)
    }
  }

  scroll()
}

苏ICP备20040768号