输入搜索…

· client · 1 min 阅读

解决 scrollIntoView 使用问题

解决 scrollIntoView 滚动时候,body 页面也随之滚动的问题

解决 scrollIntoView 滚动时候,body 页面也随之滚动的问题

@kitzbuehel

本周在自定义 tiptap / 命令时,遇到以下使用场景:

键盘选择

使用 / 弹出菜单,使用键盘快捷键上下选择,我使用的是 scrollIntoView 滚动方案,原因是不需要自己手动去计算滚动距离,特别的方便。

实际使用后,确实能达到目的,但是问题出现了。当我使用键盘选择预选时,body 页面也会随着发生滚动,这是我不想出现的。

最后搜索发现,使用以下方法可以解决:

    function scrollDiv() {
  let buttons = this.scrollingDiv.querySelectorAll('button')
  let button = buttons[this.selectedIndex]
  button.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' })
},

重点就是添加 block: 'nearest' 属性,block 默认为 start

分享:
返回文章列表