将dom滚动到滚动区域的顶部,不是视口顶部

100 阅读1分钟

将dom滚动到滚动区域的顶部,不是视口顶部

最外层overflow:hidden,当里面的元素设置ScrollIntoView时,不是滚到滚动区域顶部,而是视口顶部 相当于里面的元素设置ScrollIntoView破坏了外层元素的overflow:hidden

解决:不使用ScrollIntoView

关键代码
function moveToTop() {
  console.log('MOVE TO TOP::');
  const child = document.getElementById('child');
  const scroller = document.getElementById('scroller');
  scroller.scroll(0, child.offsetTop - 55);
}
#scroller {
  scroll-behavior: smooth;
}

参考

stackoverflow.com/questions/6…