我正在尝试实现聊天应用程序,更确切地说是聊天应用程序的滚动行为。我认为最好用gif描述。 https://i.imgur.com/NnpMeOx.gif 如您所见,我想支持一些关键功能:
到目前为止,我已经实施了2个解决方案:
a)在可滚动元素上显示flex和flex-direction column-reverse。这可以从一个盒子中精美地工作,但仅限于chrome :( IE(和Edge)以及firefox完全忽略了这一点。不是一个好的解决方案
b)我用transform:scaleY(-1)翻转了容器,然后我翻转了消息并用相同的变换翻动了每一个消息。这里主要的明显问题是滚动(鼠标滚轮和箭头)是相反的。我有点修复它,没有管理平滑滚动(糟透了)但又一次,Edge(可能还有IE)只显示滚动条为禁用。不是一个好的解决方案
我真的希望找到一个可以指引我朝着正确方向前进的人,因为到目前为止,我的努力在逻辑上确实完全失败了浏览器兼容性。
代码在https://github.com/PeterKottas/react-bell-chat上,它反应但是tbh,这并不重要,因为这看起来更像是一般的网络开发练习。
P.S。:我不能使用jQuery,希望这是公平的。所以无论是css还是普通的javascript。就像我说的那样,这与反应
没什么关系答案 0 :(得分:2)
好吧,我没有收到任何回复,并设法自己解决,所以我会接受这个,以防将来帮助某人。
第三个也是最终解决方案: 我保持滚动的方向,并没有做任何反转。相反,我迷上了onScroll和wheel事件,创建了一些回调并设法完美地模仿了这种行为。您可以在returning a pointer to a local variable上的代码中找到更多详细信息。