在最近的开发工作中,遇到了一个聊天场景的应用(Web 和小程序),类似于我们再熟悉不过的 QQ 和微信,一个正常的聊天界面是大致上是长这个样子的:

这种聊天窗口的消息流有两个明显的特点:一是最新的消息和滚动条初始位置需要在列表的最底部,二是下拉加载历史消息后要在当前消息列表的顶部进行衔接。

一般来说要实现这样的功能,对于前端开发来说都不是难事,只要两步就可以了:首先,在第一屏消息渲染完之后设置容器的 scrollTop 为一个极大值,这样就把最新消息和滚动条初始位置定位到了最底部;然后,当滚动到顶部时渲染第二屏数据,接着设置容器的 scrollTop 为衔接的位置(也就是第二屏的总高度),这样就实现了前后两屏消息的衔接。这样的 demo 只需要随手撸二三十行代码就实现了:

一开始渲染消息 1~20,滚到顶部后渲染第二屏消息 A

前端开发中聊天场景的体验优化相关推荐

  1. 前端开发中,对图片的优化技巧有哪些?

    按照先后顺序有以下: 1.去掉无意义的修饰.嗯,我会瞎说吗?除了内容图片,其他的图片的作用是修饰,也就是对于传达信息来说并非本质性的.最大的优化就是压根不要图片!所以在优化之前要做的,首先是确认设计, ...

  2. 前端开发中的Error以及异常捕获

    本文首发于公众号:符合预期的CoyPan 写在前面 在前端项目中,由于JavaScript本身是一个弱类型语言,加上浏览器环境的复杂性,网络问题等等,很容易发生错误.做好网页错误监控,不断优化代码,提 ...

  3. 初学者Web介绍一些前端开发中的基本概念用到的技术

    Web开发是比较费神的,需要掌握很多很多的东西,特别是从事前端开发的朋友,需要通十行才行.今天,本文向初学者介绍一些Web开发中的基本概念和用到的技术,从A到Z总共26项,每项对应一个概念或者技术. ...

  4. 视频教程-jQuery交互式前端开发(第一季):初体验/选择器/事件绑定-jQuery

    jQuery交互式前端开发(第一季):初体验/选择器/事件绑定 知识传播美丽,分享传递快乐.作者主要从事Java服务器端技术.前端与移动开发技术的研究和授课,已有10多年从业经验. IT老兵 ¥12. ...

  5. 前端开发中常用设计模式-总结篇

    本文是向大家介绍前端开发中常用的设计模式,它使我们编写的代码更容易被复用,也更容易被人理解,并且保证代码的稳定可靠性. 1.什么是设计模式 通俗来讲,就是日常使用设计的一种惯性思维. 因为对应的这种思 ...

  6. 前端开发中的MCRV模式

    针对前端开发中基于ajax的复杂页面开发所面临的代码规模大,难以组织和维护,代码复用性.扩展性和适应性差等问题,本文尝试以MVC思想为基础,结合Web前端开发中内容-结构-表现-行为相分离的开发标准, ...

  7. 【repost】一探前端开发中的JS调试技巧

    有请提示:文中涉及较多Gif演示动画,移动端请尽量在Wifi环境中阅读 前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问 ...

  8. 前端中什么是中台开发环境_Web前端开发中需要学习什么?会使用到哪些开发工具?...

    今天我们来谈谈Web和前端开发过程中需要学习什么?前端开发需要使用什么开发工具?也简单介绍前端开发前景和薪水.下面和千锋广州小编一起来看看吧! ​前端工程师的主要职责: 前端工程师在不同的公司有不同的 ...

  9. 前端开发中的调试技巧

    前端开发中的调试技巧 骨灰级调试大师Alert 那还是互联网刚刚起步的时代,网页前端还主要以内容展示为主,浏览器脚本还只能为页面提供非常简单的辅助功能的时候.那个时候,网页主要运行在以IE6为主的浏览 ...

最新文章

  1. R可视化绘制指数分布(Exponential Distribution)
  2. power designer 设计数据库生成到oracle数据库
  3. 三维立体图_原来三维立体图片是这样制作的,学会以后自己也可以设计
  4. 虚拟机下Ubuntu共享主机文件(Ubuntu、VMware、共享) .
  5. 通过ClassLoader调用外部jar包
  6. 在Android中afinal框架下实现sqlite数据库版本升级的办法
  7. 首席赚钱省钱专家小程序1.5.8+前端
  8. Springboot 使用校验框架validation校验
  9. 计算机的英语对话,英语口语对话:谈论电脑
  10. Google X 新项目,用计算机视觉养鱼?
  11. 软件测试——测试计划
  12. 爱奇艺Android移动客户端app瘦身经验
  13. 【Caffe代码解析】Layer网络层
  14. paip.C#.net 悬浮窗口的建立总结
  15. 【风电功率预测】基于matlab粒子群算法优化LSTM风电功率预测【含Matlab源码 941期】
  16. 扒站工具Teleport Pro教程
  17. 【日常科普】浏览器网页视频自定义倍速播放(无需任何插件)
  18. 苹果6能解掉id锁吗_iPhone进水保修吗?苹果官方正式回应了
  19. 共享计算机无法打开文件,Windows7局域网无法打开共享文件分析
  20. 英语绕口令大全 练习你的口语

热门文章

  1. iPhone代理设置,保存不上
  2. OpenCV打开相机,调整窗口大小位置
  3. oracle home 命令,oracle基本命令集锦
  4. oracle 11g的安装
  5. [GWCTF 2019]枯燥的抽奖
  6. 音速索尼克 怪人_最奇妙的刺猬索尼克粉丝游戏
  7. 阅文java服务端开发_阅文笔试复盘
  8. 数字电路硬件设计系列(十三)之HDMI电路设计
  9. HTML5游戏出现新转机
  10. 【第二十二讲】获取参数名