2、鸿蒙分页和加载数据

这个博客展示了如何使用HTML、CSS和JavaScript实现一个前端数据加载和分页的功能。通过循环遍历数据列表,动态创建内容视图,并利用固定底部的操作栏进行加载更多操作。当达到数据末尾时,更新加载按钮状态并显示提示信息。
摘要由CSDN通过智能技术生成

html

<div class="container">
    <div class="contentview">
        <block for="{{listdata}}">
            <div class="lineview">
                <text>{{$item}}</text>
            </div>
        </block>
    </div>
    <div class="operatorview" onclick="loadmore" disabled="{{flag}}">
        <text>{{loadtext}}</text>
    </div>
</div>

css

.container {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
}

.contentview {
    display: flex;
    overflow: scroll;
    width: 100%;
    flex-direction: column;
}

.lineview {
    width: 100%;
    height: 10%;
    border-bottom: 1px solid black;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: blue;
}

.operatorview {
    height: 35vp;
    width: 100%;
    position: fixed;
    bottom: 0;
    left: 0;
    background-color: yellow;
    display: flex;
    justify-content: center;
    align-items: center;
}

listdata:[],//每次存放10条数据
//使用JavaScript原生api方法 Slice(startnum , endnum)截取十条数据
this.listdata = this.arrs.slice(0,this.currentpage*PAGE_NUM);
js

import prompt from '@system.prompt';
const PAGE_NUM=10;
export default {
    data: {
        arrs:[],
        listdata:[],
        currentpage:1,
        loadtext:"加载更多",
        flag:false,
    },
    onInit(){
        for(let i=0;i<50;i++){
            this.arrs.push("第"+i+"项");
        }
        this.listdata = this.arrs.slice(0,this.currentpage*PAGE_NUM);
    },
    loadmore(){
    this.currentpage ++;
    prompt.showToast({
        message:"加载的是第"+this.currentpage+"页"
    })

    let maxSize = this.arrs.length%PAGE_NUM == 0 ?
     this.arrs.length/PAGE_NUM:parseInt(this.arrs.length/PAGE_NUM)+1;
    console.log("总共"+this.arrs.length+"页");
    
    if (this.currentpage > maxSize) {
        prompt.showToast({
            message:"没有更多数据了"
        })

        this.loadtext = '已经到底了';
        this.flag = true;
    }
    else{
        this.listdata = this.arrs.slice(0,this.currentpage*PAGE_NUM)
    }
    }
}

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值