• uniapp pc端和移动端列表上拉刷新加载分页


    效果图:
    在这里插入图片描述
    在这里插入图片描述

    tips: 实现了pc端和移动端兼容

    代码实现:

    html:

    <view v-if="answerList.length >= 1" style="padding:30rpx 0;color:#888;text-align: center;">
    	<view>{{loadMore}}</view>
    </view>
    
    • 1
    • 2
    • 3

    data:

    data() {
    	return {
    		pageNo: 1,
    		pageSize: 10,
    		totalCount: 0,
    		loadMore: '上拉加载更多'
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    // uniapp移动端触底生命周期
    onReachBottom() {
    	this.getList()
    },
    
    • 1
    • 2
    • 3
    • 4
    mounted() {
    	// 判断当前是移动端还是pc端
    	if (this.isMobile()) {
    		console.log('移动端')
    	} else {
    		console.log('pc端')
    		window.addEventListener('scroll', this.scrollBottom)
    	}
    			
    },
    methods: {
    	isMobile() {
    		let flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)
    		return flag
    	},
    	// pc端触底方法
    	scrollBottom() {
    		// 变量scrollTop为当前页面的滚动条纵坐标位置
    		 let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
    		// 变量windowHeight 是可视区的高度
    		 let windowHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
    	    // 变量scrollHeight 是滚动条的总高度
    	    let scrollHeight = document.documentElement.scrollHeight || document.body.scrollHeight;
    			
    	    // 到底的条件
    	    if (scrollTop + windowHeight >= scrollHeight - 100) {
    	      // 到底后要触发的事件
    	      console.log('pc端触底了');
    	      this.getList()
    	  }
    	},
    	getList() {
    		if ((this.pageNo * this.pageSize) < this.totalCount) {
    			this.loadMore = '正在加载中……'
    			this.pageNo++
    			this.keywordsSearch()
    		} else {
    			this.loadMore = '已无更多'
    		}
    	},
    	// 调用后端接口拿到数据
    	keywordsSearch() {
    		const params = {
    			keywords: this.search.searchValue,
    			type: this.search.type,
    			pageNo: this.pageNo,
    			pageSize: this.pageSize
    		}
    		searchKeywords(params).then(res => {
    			if (res.code == 200) {
    				this.answerList = this.answerList.concat(res.result.records)
    				this.totalCount = res.result.total
    				if (this.pageNo == 1 && this.answerList.length < 10) {
    					this.loadMore = '已无更多'
    				}
    			}
    		})
    	},
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
  • 相关阅读:
    三七皂苷-壳聚糖(PNS-CSB)水凝胶/聚乙烯吡咯烷酮/pH敏感性羧甲基/壳聚糖水凝胶的制备
    如何通过pywinauto开始PC端自动化
    gpt-author v2:一款自动创作小说的AI工具
    苍穹外卖day8(1)地址簿功能
    服务器硬件介绍(2)
    c语言实现数据结构中的顺序表
    HTML+CSS(4)
    UEFI基础——测试用例Hello Word
    小白学流程引擎-FLowable(三) —流程设计器Flowable UI
    智慧工厂:数字孪生,让工业生产拥有“智慧大脑”
  • 原文地址:https://blog.csdn.net/u013361179/article/details/133783225