作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 react-infinite 滚动列表,我实现了一个向上/向下箭头处理程序:
onKeyDown = (e) => {
if(e.keyCode === 40){
if (this.props.onKeyDown) {
e.preventDefault()
this.props.onKeyDown()
}
}
else if (e.keyCode === 38) {
if (this.props.onKeyUp) {
e.preventDefault()
this.props.onKeyUp()
}
}
}
(该组件可在我的整个应用程序中重用,因此我通过 props 传递实际功能)
只要选择列表中的下一个/上一个元素,它就可以工作。但是,当您到达滚动列表的边缘并继续前进时,列表不会滚动以保持所选元素在 View 中。所选元素刚从屏幕上消失。
任何帮助将不胜感激!
最佳答案
您需要方法 scrollIntoView
.它存在于每个元素上。您还需要通过获取元素的 offsetTop
并与组件的 offsetHeight
进行比较来检测元素何时在屏幕外呈现,当此数字高于组件的 offsetHeight 时
您需要将其滚动到 View 中。
关于javascript - react : How to use arrow up/down to select previous/next item in a scroll list and make the list scroll to keep the selected element on screen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45695491/
我是一名优秀的程序员,十分优秀!