微信小程序> 小程序聊天会话组件

小程序聊天会话组件

浏览量:809 时间: 来源:极乐叔

 

场景

用于在线客服的聊天对话等

 

一、布局圈点

1、三角箭头

绘制一个26rpx*26rpx矩形,使它旋转45度,然后隐去对半,形成气泡上的直角三角形。

!-- 画三角箭头 -- view class="triangle" style="{{item.myself == 1 ? 'right: 140rpx; background: #7ECB4B' : 'left: 140rpx;'}}"/view /* 三角箭头 */.body .triangle { background: white; width: 20rpx; height: 20rpx; margin-top: 26rpx; transform: rotate(45deg); position: absolute;}

 

2、flex-flow改变流动方向

分别取值['row' | 'row-reverse'],实现对方发来的消息头像居左,自己发的消息头像居右。

view class="body" style="flex-flow: {{item.myself == 0 ? 'row' : 'row-reverse'}}"

 

3、按住说话悬浮层水平与垂直居中

方案1,js手工计算

data: { hud_top: (wx.getSystemInfoSync().windowHeight - 150) / 2, hud_left: (wx.getSystemInfoSync().windowWidth - 150) / 2,}view class="hud-container" wx:if="{{status != state.normal}}" style="top: {{hud_top}}px; left: {{hud_left}}px;"

 

方案2,纯css

/*悬浮提示框*/.hud-container { position: fixed; width: 150px; height: 150px; left: 50%; top: 50%; margin-left: -75px; margin-top: -75px;}

经过对比,方案2要优于方案1

 

JS圈点

一、touch事件实现上滑取消语音输入

按下出现悬浮,上滑到超过一定位移出现取消提示,松手取消;上滑未超过,松手发送

touchStart: function (e) { // 触摸开始 var startY = e.touches[0].clientY; // 记录初始Y值 this.setData({ startY: startY, status: this.data.state.pressed }); }, touchMove: function (e) { // 触摸移动 var movedY = e.touches[0].clientY; var distance = this.data.startY - movedY; // console.log(distance); // 距离超过50,取消发送 this.setData({ status: distance  50 ? this.data.state.cancel : this.data.state.pressed }); }, touchEnd: function (e) { // 触摸结束 var endY = e.changedTouches[0].clientY; var distance = this.data.startY - endY; // console.log(distance); // 距离超过50,取消发送 this.setData({ cancel: distance  50 ? true : false, status: this.data.state.normal }); // 不论如何,都结束录音 this.stop(); },

 

二、发送消息完毕滚到页尾

data: { toView: ''}reply: {// ...this.scrollToBottom()},scrollToBottom: function () { this.setData({ toView: 'row_' + (this.data.message_list.length - 1) }); },

 

!--每一行消息条--view class="row" wx:for="{{message_list}}" wx:key="" id="row_{{index}}"

 

在线体验

专栏作家

黄秀杰,微信公众号:huangxiujie85。小程序社区博主。分享移动应用快速开发实战,坚持原创,包括图文与视频教程。

本文原创发布于小程序社区。未经许可,禁止转载
原文地址:小程序聊天会话组件-小程序社区/博主专区-微信小程序开发社区

 

相关文章


一个同时支持移动端与小程序的聊天机器人

微信小程序开发—项目实战之聊天机器人

微信小程序聊天室(websocket )(PHP)

微信小程序聊天系统搭建

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎