javascript - 使 Div 在可滚动溢出中聚焦并可见

标签 javascript css scroll focus visible

有没有一种方法可以在 div 中创建一个元素,该元素是要滚动的元素列表。我的尝试没有成功,因为它确实使元素聚焦但它不会可见,因为我仍然必须向下滚动才能查看元素。

<style>

#list {
    overflow-x: hidden;
    overflow-y: scroll;
    height: 200px;
    width: 200px;
}

.item {
    width: 100%;
}

</style>

<div id="list">
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
    <div class="item focus">Item I Want Focused</div>
    <div class="item">Item</div>
    <div class="item">Item</div>
</div>

最佳答案

使用Element.scrollIntoView()使焦点元素可见:

const focused = document.querySelector('.focus')

focused.scrollIntoView({ behavior: 'smooth' })
#list {
  overflow-x: hidden;
  overflow-y: scroll;
  height: 200px;
  width: 200px;
}

.item {
  width: 100%;
}
<div id="list">
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item focus">Item I Want Focused</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
</div>

关于javascript - 使 Div 在可滚动溢出中聚焦并可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55188703/

相关文章:

javascript - JavaScript 中的断言

Javascript for 循环行为每次迭代输出相同的结果

html - div 高度取决于剩余空间

javascript - div 坚持一个位置 :fixed link?

javascript - td 为空时如何使 colspan 自动?

android - 如何制作带滚动条的弧形菜单?

ios - UIScrollView 在 vi​​ewDidLoad 中调用 setContentSize 后不会更新,但从按钮调用时会更新

javascript - 在 JS 中用 { } 围绕变量名定义变量 - 这叫什么?

javascript - 如何根据对象中其他键的值自动将值分配给另一个键

primefaces - 滚动 p :messages into view when it is updated and (error) messages are present