小程序组件:聊天会话组件的介绍(附代码)

互联网 18-8-10
本篇文章给大家带来的内容是关于小程序组件:聊天会话组件的介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

场景

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

一、布局圈点

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}}">

相关推荐:

小程序与后台进行交互的实现(附代码)

小程序实现自动加载的完整代码

以上就是小程序组件:聊天会话组件的介绍(附代码)的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 小程序组件
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:小程序与后台进行交互的实现(附代码)

相关资讯