uniapp消息会话界面【消息滚动到底部】-02

实现:每次页面进入,以及发送消息都自动定位到最后一条消息

对关键代码解读如下:

scroll-into-view : 值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素 。我设置scroll-y方向(垂直)

scrollToId : 值为 'scrollToBottom' 或 '' 【空字符】 ,值为 'scrollToBottom'的时候就会滚动到底部

id : 表示消息列表中第一个元素的时候,id为 'scrollToBottom'

unshift头部插入 : chatData聊天数据列表中,第一条数据是最新的数据,消息3,消息2,消息1

css样式:

flex-direction: column-reverse; // 将排列方式翻转, 因为chatData列表,第一条为最新数据,需要将它显示到界面的最底部,故翻转

overflow: hidden; // 将超出的数据隐藏

复制代码
<scroll-view class="chat-container" scroll-y :scroll-into-view="scrollToId">
	<view class="msg-contant">
        <view v-for="(item, index) in chatData" :key="index">
            <view :id="index === 0 ? 'scrollToBottom' : ''">消息{{index}}</view>
        </view>
    </view>
</scroll-view>

---------js代码------
<script>
	export default {
		data() {
			return {
				scrollToId: 'scrollToBottom',
				chatData: [],// 所有聊天数据
			};
		},
		
		methods: {
			
			sendMessage() {
				if (!this.inputText.trim()) return;
				this.chatData.unshift('头部插入消息');
				this.inputText = '';
				this.scrollToBottom();
			},
			scrollToBottom() {
				this.$nextTick(() => {
					this.scrollToId = '';
					setTimeout(() => {
						this.scrollToId = 'scrollToBottom';
					}, 50);
				});
			},
			
		}
	};
</script>





-------css样式----
	.chat-container {
		flex: 1;
		padding: 24rpx;
		box-sizing: border-box;
		height: 100%;
		overflow: hidden;

	}

	.msg-contant {
		display: flex;
		flex-direction: column-reverse; 
		
		
	}
相关推荐
wuxianda103019 小时前
2026 苹果审核 4.3 (a) 被拒全解析|Guideline 4.3a spam 马甲包拒审原因 + 避坑方案
flutter·uni-app·苹果上架
头发还在的女程序员2 天前
基于 Spring Boot + Vue 3 + uni-app 的灵活用工系统:四端架构与业务流程设计
vue.js·spring boot·uni-app·灵活用工·灵工系统
Dumbness4 天前
订阅消息弹窗必须在用户点击里调:联调实验室里 timing 和 Mock 支付通知踩的坑
javascript·uni-app
码间留白5 天前
uni-app 鸿蒙离线打包:一个改动从源码到真机要穿过几条链
uni-app·鸿蒙·deveco·离线打包·uts插件
多客:duokelijie6 天前
代练订单系统选型思路:跨品类游戏接入、订单分层管理、自动结算逻辑拆解!
数据库·mysql·微信小程序·前端框架·uni-app·php·持续部署
码间留白6 天前
鸿蒙端对接 BLE 血压计:从一次握手到读数入库(二)设备篇
物联网·uni-app·鸿蒙·蓝牙ble·血压计
华玥作者7 天前
Vue 3 + TypeScript + uni-app 组件库推荐:hy-app(华玥组件库)
vue.js·typescript·uni-app
FinelyYang7 天前
uniapp使用kkfileview在线预览ppt,excel,word,pdf类型文件
pdf·uni-app·powerpoint
2501_916008897 天前
iPhone 设备信息查看,用 KeyMob 看型号、序列号、电池健康和 UDID
android·ios·小程序·https·uni-app·iphone·webview
ModyQyW8 天前
vite-plugin-uni-manifest 0.7:在 uni-app 读取之前生成
前端·uni-app