重点看标红部分,其他代码只是写的上下逻辑,可忽略

wxml:

<view style="position: relative;width: 100%;height: 100%;">

<scroll-view scroll-y="{{true}}" scroll-with-animation="{{true}}" scroll-into-view="{{scrollBottom}}" class="barrage" bindscrolltolower="scrollBottomMet">

<view class="forBarrage" wx:for="{{chatRecord}}" wx:key="key">

<text decode="{{true}}" style="{{item.msgType==2?'color:orange':item.msgType==3?'color:green':item.isManage==1?'color:red':item.isSelf?'':'color:yellow'}}">{{item.nickName}}{{item.msgType==1?':':'&nbsp;'}}</text>

<text>{{item.chatContent}}</text>

</view>

<view id="{{scrollBottom}}"></view>

</scroll-view>

<view class="hasMoreChat" wx:if="{{hasMore}}" bindtap="toBottom">底部有新消息 ↓</view>

</view>

index.js:

Page({

/**

* 页面的初始数据

*/

data: {

hasMore: false,

scrollBottom: "1rpx",

}

//当收到服务器来信时

socketTask.onMessage(res => {

let msg = res.data,

msgArr = msg.split(":"),

newMsg = msg.split(msgArr[0] + ":")[1],

content = newMsg.split("-");

if (msg.indexOf("TextMsg:") != -1) { //文字信息=>TextMsg:用户编号-昵称-消息内容-是否管理员

let isSelf = false,chatMsg=JSON.parse(newMsg)

if (chatMsg.commonCode == _this.data.markCustCode) { //本人所发

isSelf = true

}

let chatRecord = _this.data.chatRecord;

chatMsg.isSelf=isSelf

chatMsg.msgType=1 //普通消息

chatRecord.push(chatMsg)

_this.setData({

chatRecord,

// scrollTop: _this.data.swiperHeight * chatRecord.length,有新消息来自动回到底部

//看历史消息的时候,有新消息来,底部出现 有更多消息字样

hasMore: true

})

//进入自动在底部  往后台发请求那数据

getChatRecord() {

let _this = this

POST_UNLOAD('liveChatRecord/list', {

liveId: _this.data.info.liveId,

round: _this.data.info.round,

current: 1,

size: 50,

isAsc: false

}, function (res, resCode) {

if (resCode == 200) {

let {

result

} = res.data

result.records.reverse()

result.records.forEach(e => {

e.isSelf = (e.markCustCode == _this.data.markCustCode) ? true : false

e.msgType = 1 //普通消息

})

_this.setData({

chatRecord: result.records,

scrollBottom: "scrollBottom"

})

}

});

},

//点击更多消息 底部有新消息字样消失

scrollBottomMet() {

this.setData({

hasMore: false

})

},

//点击底部有新消息字样立马置底

toBottom() {

this.setData({

scrollBottom: "scrollBottom"

})

},

})

微信小程序聊天界面进入自动滚动到底部,翻看历史聊天记录,收到的新消息不会马上置底,如收到新消息出现 底部有更多消息字样相关推荐

  1. 微信小程序:scroll-view制作横向滚动导航条特效

    微信小程序:scroll-view制作横向滚动导航条特效 一.scroll-view介绍 微信小程序官方释义为:可滚动视图区域,目前一共有10几个属性,包括:scroll-x.scroll-y.scr ...

  2. 视频教程-微信小程序商城-界面设计实战教学(含源代码)-微信开发

    微信小程序商城-界面设计实战教学(含源代码) 04年进入计算机行业.拥有6年net和php项目开发经验,8年java项目开发经验. 现前端全栈工程师,主攻产品设计,微信开发等. 黄菊华 ¥90.00 ...

  3. [微信小程序]聊天对话(文本,图片)的功能(完整代码附效果图)

    相关文章: 1.小程序聊天群,发送语音,文字,图片. 2.微信小程序集成腾讯IM,实现实时音视频通话,1V1聊天 3.云开发微信小程序聊天群 4.接入网易云信IM即时通讯的微信小程序聊天室 5.微信小 ...

  4. 微信小程序开发登录界面mysql_微信小程序 欢迎界面开发的实例详解

    微信小程序 欢迎界面 市面上大多数的app都会有一个欢迎界面,下面将演示如何通过微信小程序实现一个欢迎界面. 下面将会按照以下的顺序介绍: 布局的实现 逻辑的实现 样式的实现 1.布局的实现 整个布局 ...

  5. 微信小程序初始界面设置密码

    如何在微信小程序初始界面输入密码,看到网上给出了很多方法,较为常见的是如何输入一个六位密码.这里介绍一种觉得比较可行的方法,具体实现如下: 最终效果: 代码实现: wxml: <input cl ...

  6. 微信小程序:开心锤锤超火动态表情包微信小程序源码下载自动采集

    这是一款表情包小程序源码 大家刷抖音的时候应该都刷过开心锤锤这个网红卡通短视频吧 现在这一款小程序就是和它有关的 里面的表情包呢大部分都是动态表情包(斗图的时候是不是更炫) 至于里面的表情包人物的就都 ...

  7. NLP微信小程序聊天机器人

    今天把两年前大二时候的小程序又拿来玩了一下,决定开源这个小项目 一个NLP微信小程序聊天机器人,前端就一个页面,后端是php的,可以接图灵等等各种api,也可以自己写个python的接口做NLP算法测 ...

  8. 微信小程序开发之编译自动生成新文件的解决办法

    文章目录 前言 微信小程序开发中一自动编译就自动生成一些wxss,wxml,文件的解决办法 一. 问题详情 二.为什么会出现这个情况 三.解决办法 1.找到app.json文件夹下的具体页面详情 2. ...

  9. php欢迎界面代码,分享微信小程序欢迎界面开发的实例代码

    这篇文章主要分享微信小程序欢迎界面开发的实例代码的相关资料,这里实现欢迎界面的简单实例和实现代码及实现效果图,需要的朋友可以参考下 微信小程序 欢迎界面 市面上大多数的app都会有一个欢迎界面,下面将 ...

最新文章

  1. BZOJ 1046: [HAOI2007]上升序列(LIS)
  2. java项目合同制没做完扣钱吗_程序员接私活,怎样防止做完不给钱?
  3. 没有报表和数据分析,银行数据仓库只能是一盘散沙
  4. windows下将磁盘脱机,并在我的电脑下显示
  5. pandas练习题二
  6. cad管线交叉怎么画_CAD命令:打断(BREAK)命令的使用技巧
  7. Atitit. 提升可读性推荐标准规范解决方案 关于编程语言的v5 docx
  8. 薛定谔 Maestro教程--用户界面 | 结构编辑 | 测量距离角度
  9. 软考中级网络工程师怎么复习?
  10. 大道至简,CAN 诊断的本质,脱离cdd 和dbc ,纯手造轮子
  11. java 调用企查查API查询企业信息
  12. WPS服务器维护,wps卸载云服务器
  13. 如何在虚拟机安装的Win10系统里快速打开【此电脑】图标?(图文详解)
  14. 三分钟轻松实现连接西门子PLC
  15. Android 攻城狮的进击 1 开发环境搭建HelloWorld.apk
  16. “小论文”杂谈之二:如何选择一篇好文章
  17. 在openssl申请证书时遇到的问题解决
  18. IT66311 是一款单输入、单输出 HDMI 2.0 重新定时缓冲器,支持高达 6.0Gbps 的信令速率。
  19. c语言mc协议,三菱PLC MC协议的配置和使用简析
  20. 论文阅读2018-10-13

热门文章

  1. 适合小白的BASH基本命令攻略,分分钟PK掉黑客达人
  2. 2020年海外休闲游戏必看(含App Store/Google/Facebook收款秘籍)
  3. 在html中如何创建空白子网页,在DreamWeaver中创建空白页
  4. xynuoj 零用钱 酒馆浪人的博客
  5. slurm mysql_Slurm集群部署
  6. the promise
  7. 【线性代数】MIT Linear Algebra Lecture 6: Column space and nullspace
  8. 圣才e书题库e考安卓版专用手机APP考试软件下载安装
  9. 万物互联时代,你的企业官网是否还是一座“孤岛”
  10. Hystrix 豪猪哥