小程序聊天室功能效果(暂时没有语音功能)

基于uniapp开发框架,uview组件库开发的小程序聊天室功能效果;

目前已经实现消息自动滚动到底部,已经弹出键盘和更多功能时页面无需自动往上推动,类似微信的效果
在这里插入图片描述
在这里插入图片描述

以下是代码实现:
代码仓库:https://gitee.com/huang_ting/chat-components.git

由于代码过长,只截取部分,需要的去仓库下载;

1.布局分析
(1)内容容器中使用scroll-view组件,使用scroll-into-view来绑定内容id,实现自动滚动到底部,
(2)子容器chat-info使用相对定位,这个需要注意,这里是为了实现在手机端界面弹出键盘页面往上推动的效果。

在这里插入图片描述
在这里插入图片描述
2.容器高度分析
(1)注意scroll-view需要固定高度,否则无效
(2)每次发送信息的时候都要滚动到底部,这里使用了watch进行监听,(键盘高度变化的时候进行调用容器的高度变化)
在这里插入图片描述
(3)容器高度变化
为了实现类似微信的效果,弹出键盘的时候,需要判断内容容器的高度和键盘之前的关系,下面是是判断方法:
在这里插入图片描述
在这里插入图片描述
其中chat-info是聊天内容的高度;
可分为三种情况:
A:内容容器<滚动容器 - 键盘高度(苹果x以上的,这里的滚动容器高度并不等于scroller-view的高度,因为苹果x有小黑条,滚动容器= 屏幕高度-导航栏高度-input高度)
B:滚动容器 - 键盘高度<内容容器<scroller-view高度
C:内容容器>scroller-view高度

3.更多功能分析
在这里插入图片描述
这里是点击小人弹出更多选择,难度不大,

有一个点需要注意的是,当点击input框的时候,这时手机端会有键盘,此时如果点击效果,会有可能先触发小人的方法,然后在触发失去焦点的判断,会导致input固定在了底部,所以需要在blur方法增加一个有没有更多界面的判断

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值