【发布时间】:2021-07-22 22:43:11
【问题描述】:
我有一个简单的消息应用程序,但消息的内容有时很长。因此,我实现了一个“查看更多”和“查看更少”按钮,分别显示整个内容或内容的剪辑版本。聊天视图是倒置的,以便较新的聊天更接近底部 - 如果滚动条一直位于可滚动 div 的底部,则单击“查看更多”会加载内容,但滚动条会停留在底部(因此用户必须单击“查看更多”,然后滚动到长消息的顶部才能开始阅读)。但是,如果用户向上滚动了一点点,单击“查看更多”的行为与预期的一样,滚动保持在当前位置。如何使滚动保持固定在当前位置,即使用户一直滚动到 div 的底部?
我尝试将填充和边距设置为可滚动 div 的底部,或者在单击消息时自动滚动到消息的顶部,但这不起作用并且是更糟糕的行为(来回捕捉)。
附上视频以澄清行为(第一个行为是错误的,第二个是正确的): link to video
下面的简化代码:
<JsxParser ... jsx={this.state.expanded ? wholeContent : clippedContent}/>
<div>
<button className="link pt-2 p-1"
onClick={() => this.setState({expanded: !this.state.expanded})}>
{this.state.expanded ? "See less" : "See more"}
</button>
</div>
【问题讨论】:
-
你的代码在哪里?
-
对我来说,这令人惊讶,SO 没有修复新用户的入职流程。
-
抱歉,我添加了一些简化的代码。我没有意识到这是一个要求。
标签: javascript html css reactjs jsx