### [微信小程序开发聊天会话组件:可以用于在线客服的聊天对话](https://www.prosaas.cn/article/17203) **Published:** 2018-08-01T02:15:52 **Author:** 5201314 **Excerpt:** 用小程序制作聊天会话,可以用来在线客服的聊天对话等,以下是代码详细讲解,操作起来也很简单,一起制作吧。聊天会话… 用小程序制作聊天会话,可以用来在线客服的聊天对话等,以下是代码详细讲解,操作起来也很简单,一起制作吧。 ![](https://img.php.cn//upload/image/496/230/957/1533089282598472.gif) 聊天会话 # 场景 用于在线客服的聊天对话等 # 一、布局圈点 ### 1、三角箭头 绘制一个26rpx\*26rpx矩形,使它旋转45度,然后隐去对半,形成气泡上的直角三角形。 /\* 三角箭头 \*/.body .triangle { background: white; width: 20rpx; height: 20rpx; margin-top: 26rpx; transform: rotate(45deg); position: absolute; } ### 2、flex-flow改变流动方向 分别取值\['row' | 'row-reverse'\],实现对方发来的消息头像居左,自己发的消息头像居右。 ### 3、按住说话悬浮层水平与垂直居中 方案1,js手工计算 data: { hud\_top: (wx.getSystemInfoSync().windowHeight - 150) / 2, hud\_left: (wx.getSystemInfoSync().windowWidth - 150) / 2, } 方案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) }); }, 相关文章: 相双向同步聊天小程序[ByJavaOnLinux]实现代码 一个会话备忘录小程序的实现方法 相关视频: 客服会话api2-轻松玩转微信小程序开发与制作视频教程 以上就是微信小程序开发聊天会话组件:可以用于在线客服的聊天对话的详细内容,更多请关注知企PROSAAS其它相关文章! **Categories:** 后端开发 ---