vue div框消息不断增加 自动滚动到底部

这篇博客详细介绍了如何在 Vue.js 应用中实现聊天记录的实时更新和自动滚动到底部的功能。通过监听滚动事件和设置数据更新后的回调,确保当新消息到来时,滚动条始终位于聊天框的底部,从而提供无缝的用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<template>
<div class="consoleBox">
					<div class="curentScroll" v-for="(item,index) in debugProcessList" :key="index" style="line-height: 30px;">{{item.createTime}} &nbsp;&nbsp;&nbsp;{{item.content}}</div>
				</div>
</template>

export default {
    name: 'parkScreen',
    data() {
        return {
        oldScrollTop:0,
			scrollFlag:true,
}
       },
  mounted() {
        var that = this;
		//监听滚动事件
	    document.querySelector(".consoleBox").addEventListener('scroll',this.scrolling)
	    //初始化数据 此处可以通过setInterval 来不断增加数据 也可通过websockt来不断的增加数据 达到有数据就滚动到底部的效果
	    this.getUpdataData()
	   },
 methods: {   
 getUpdataData(){
			let that=this
			let robotId=1
			//获取数据---根据实际情况自己获取数据
			getDebugRecord({tobotId:robotId}).then(res => {
				if(res.rows.length>0){
					that.debugProcessList=[]
					that.debugProcessList=res.rows
				}
			})
			
			//调用保持滚动条方法(这一步也可以在updated生命周期调用)
			if(this.scrollFlag){
				this.scrollToBottom();
			}
		},
	//滚动条保持最底部方法
		scrollToBottom () {
			this.$nextTick(() => {
				var container = this.$el.querySelector(".consoleBox");
				container.scrollTop = container.scrollHeight;
			})
		},
		scrolling() {
			let scrollTop = document.querySelector(".consoleBox").scrollTop 
			// 更新——滚动前,滚动条距文档顶部的距离
			let scrollStep = scrollTop - this.oldScrollTop;
			this.oldScrollTop = scrollTop;
			//判断当前是向上or向下滚动
			if (scrollStep < 0) {
				//向上
				this.scrollFlag=false
			}else{
				this.scrollFlag=true
			} 
		},
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值