作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用react-bootstrap-sweetalert
lib创建了一个模态窗口。
它包含一长串内容,因此我允许overflow:scroll
。
问题是,当模式打开时,它不会滚动到顶部。
并滚动到未知位置,所以我需要手动滚动到顶部。
这是简单的代码
basicAlert = () => {
this.setState({
alert: (
<div>
// long list table
</div>)
});
}
hideAlert = () => {
this.setState({
alert: null
});
}
render() {
return (
{this.state.alert}
// rest contents ...
)
}
最佳答案
您可以在包装可滚动内容的组件中的元素上创建ref
,然后在模式中显示内容时,使用此引用将scrollTop
设置为相应DOM元素的0
。
因此,例如,对组件进行以下添加/调整应可实现所需的功能:
// Add a constructor to create the ref
constructor(props) {
super(props)
// Add a component ref to your component. You'll use this to set scroll
// position of div wrapping content
this.componentRef = React.createRef();
}
basicAlert = () => {
this.setState({
alert: (
<div>
// long list table
</div>)
}, () => {
// After state has been updated, set scroll position of wrapped div
// to scroll to top
this.componentRef.current.scrollTop = 0;
});
}
render() {
// Register your ref with wrapper div
return (<div ref={ this.componentRef }>
{ this.state.alert }
// rest contents ...
</div>)
}
关于javascript - 如何将模式滚动显示在React.js中的顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52215348/
我是一名优秀的程序员,十分优秀!