[英]Scrolling div stuck to bottom on content load
我有一个简单的消息应用程序,但消息的内容有时很长。 因此,我实现了“查看更多”和“查看更少”按钮,分别显示整个内容或内容的剪辑版本。 聊天视图被反转,以便较新的聊天更接近底部 - 如果滚动条一直位于可滚动 div 的底部,单击“查看更多”会加载内容,但滚动条停留在底部(因此用户必须单击“查看更多”,然后滚动到长消息的顶部才能开始阅读)。 但是如果用户向上滚动了一点点,点击“查看更多”就会按预期运行,滚动保持在当前位置。 我怎样才能让滚动保持在当前位置,即使用户一直滚动到 div 的底部?
我已经尝试将填充和边距设置为可滚动 div 的底部,或者在单击消息时自动滚动到消息的顶部,但这不起作用,甚至是更糟糕的行为(来回对齐)。
附上视频以澄清行为(第一个行为是错误的,第二个是正确的):视频链接
简化代码如下:
<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>
我假设这些显示更多/更少的按钮与 onClick 处理程序一起使用。 您想要做的是将用户导航到折叠评论位于屏幕顶部的位置。 您可以将按钮制作成<a></a>
标签,将它们的href
属性设置为等于它们相应的消息 div,我在前面加上了一个“#”。
基本上,一个带有id="message1"
的 div 元素和带有href="#message1"
的显示更多按钮。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.