uniapp实现页面局部上拉刷新(scroll-view)

 

<template>
    <view>
        <input class="uni-input" focus placeholder="自动获得焦点" />
        <scroll-view :style="{height:height}" scroll-y="true" refresher-enabled="true" :refresher-triggered="triggered"
                     :refresher-threshold="50" refresher-background="transparent" @refresherpulling="onPulling"
                     @refresherrefresh="onRefresh" @refresherrestore="onRestore" @refresherabort="onAbort">
            <view>
                <view v-for="item in data">
                    <view style="margin: 20px;background: #9acafc">{{item}}</view>
                </view>
            </view>
        </scroll-view>
    </view>
</template>
<script>
    export default {
        name: "index",
        data() {
            return {
               _freshing:false,
                triggered: false,
                data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21],
                height: '',
            }
        },
        onShow() {
            let _this = this
            uni.onWindowResize((res) => {
                console.log('变化后的窗口宽度=' + res.size.windowWidth)
                console.log('变化后的窗口高度=' + res.size.windowHeight)
                //计算scroll-view高度,(窗口高度减去上面input和下面tabbar高度)
                _this.height = res.size.windowHeight - 50 - 45 + 'px'
            })
        },
        onLoad() {
            this._freshing = false;
            setTimeout(() => {
                this.triggered = true;
            }, 1000)
        },
        methods: {
            onPulling(e) {
                console.log("onpulling", e);
            },
            onRefresh() {
                if (this._freshing) return;
                this._freshing = true;
                setTimeout(() => {
                    this.triggered = false;
                    this._freshing = false;
                }, 3000)
            },
            onRestore() {
                this.triggered = 'restore'; // 需要重置
                console.log("onRestore");
            },
            onAbort() {
                console.log("onAbort");
            }
        }
    }
</script>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值