Javascript 类似聊天的滚动行为(ReactJs)
我正在尝试实现一个聊天应用程序,更确切地说是一个聊天应用程序的滚动行为。我认为最好用gif来描述它。 如您所见,我希望支持几个关键功能:Javascript 类似聊天的滚动行为(ReactJs),javascript,css,reactjs,flexbox,chat,Javascript,Css,Reactjs,Flexbox,Chat,我正在尝试实现一个聊天应用程序,更确切地说是一个聊天应用程序的滚动行为。我认为最好用gif来描述它。 如您所见,我希望支持几个关键功能: 滚动是反向的,因此在页面加载时,消息从底部开始,同时滚动条 当用户输入消息时,Chat会滚动到底部。(这很简单,不需要注意这一部分) 如果出现新消息(在现实生活中由websocket推送),它不应该破坏现有的滚动位置,除非它已经在底部。然后它应该滚动以自动显示消息 到目前为止,我已经实施了两种解决方案: a) 在可滚动元素上显示flex和flex direct
附言:我不能使用jQuery,希望这是公平的。所以要么是css,要么是纯javascript。正如我所说,这与react没有多大关系。我没有收到回复,我自己设法解决了它,所以我会接受它,以防将来对某人有所帮助 第三个也是最终解决方案:
我保持滚动的方向,根本没有做任何反转。相反,我连接到onScroll和wheel事件中,创建了一些回调,并成功地模拟了行为。您可以在上的代码中找到更多详细信息。请注意,该库上的演示未更新为最新版本的代码。如果它对任何人都有帮助的话,我可能会这样做,但它只是一个自动取款机,所以我不想麻烦它。关于“a”项,你知道为什么这个解决方案只在Chrome中有效吗?如果不是,考虑浏览器之间有很多Frasbox渲染差异。也许它在FF、IE和Edge中不起作用的原因是有一个简单的解决方案,现在放弃这个解决方案可能为时过早,而且可能是不必要的。考虑在这个问题上发布一个完整的问题(A)。NAH,这是一个bug /未实现的/特性,只是在其他浏览器中有不同的效果。这是一个遗憾,因为这个解决方案本来是完美的。无论如何,我按照我的答案实现了所需的行为。感谢您抽出时间查看此文档;)顺便说一句,该链接现在已更新,以便您可以查看最终版本。