【uniapp-scrollView滚动到底部+滚动到顶部加载更多】

<scroll-view @scroll="scrollPosition" :style="{height:scrollViewHeight+'rpx'}"  :scroll-y="true" :scroll-top="scrollTop" :scroll-with-animation="true" >
							<uni-load-more :status="discussionStatus" v-show="isMore"></uni-load-more>
							<view id="scroll-view" v-show="weChatList.length">
								<view v-for="item in weChatList" :key="item.uid">
									<!-- 我发送的 -->
									<view class="send-message-content" v-if="userId==item.uid">
										<view class="receive-message-item">
											<view class="receive-message-item flex align-items justify-end">
												<view class="receive-content mineRecive">
													<view class="send-user-name">{{item.user_nickname}}</view>
													<view class="send-content">{{item.content}}</view>
												</view>
												<view class="receive-photo"><image :src="item.avatar"
														alt="用户头像"></image></view>
											</view>
										</view>
									</view>
									<!-- 接收的消息 -->
									<view class="receive-message-content" v-else>
										<view class="receive-message-item flex align-items">
											<view class="receive-photo"><image :src="item.avatar"
													alt="用户头像"></image></view>
											<view class="receive-content" style="display: flex;flex-direction: column;align-items: flex-start;">
												<view class="user-name">{{item.user_nickname}}</view>
												<view class="user-content">{{item.content}}</view>
											</view>
										</view>
									</view>
								</view>
							</view>
							<uni-load-more status="暂无聊天" v-show="!weChatList.length"></uni-load-more>
						</scroll-view>
	#scroll-view-content{
		height: 300rpx!important;
		overflow: scroll;
		max-height: 300rpx!important;
	}
data(){
	scrollTop:0,//滚动条位置
	scrollViewHeight:300,//滚动视图的高度
},
methods:{
// 讨论区滚动事件
	scrollPosition(e){
		if(e.detail.scrollTop<10){
			this.isMore = true
			if(this.discussionPage<this.discussionTotall){
				this.discussionPage += 1;	
				this.discussionFn();//调用新数据
				this.discussionStatus = 'loading';
			}else{
				this.discussionStatus = '暂无更多';
			}	
		}
	},
	// 加载更多数据
	discussionFn(){
		let params = {
			courseid:this.courseid,
			page:this.discussionPage
		}
		discussList(params).then((res)=>{
			let {code, numpage, list} = res
			if(code==0){
				this.isMore = false
				this.discussionStatus = ''
			}
		})
	},
	// 滚动到底部
   initContentHeight() {
	   uni.createSelectorQuery()
		   .in(this)
		   .select('#scroll-view')
		   .boundingClientRect(data => {
			   if (data) {
				   let top = Number(data.height)
				   if (top > 0) {
					   this.scrollTop = top;
				   }
			   }
		   })
		   .exec();
   },
   // 发送
	websocketsend(){
		this.$nextTick(()=>{
			tihs.initContentHeight()
		})
	}
}
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值