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

网友投稿 865 2022-10-05

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

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

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

场景

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

一、布局圈点

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) }); },-

-

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:bzoj3924 [Zjoi2015]幻想乡战略游戏
下一篇:bzoj3435 [Wc2014]紫荆花之恋
相关文章

 发表评论

暂时没有评论,来抢沙发吧~