更新记录

1.0.1(2024-12-25) 下载此版本

兼容h5,添加数据更新和渲染结束事件

1.0.0(2024-12-25) 下载此版本

实现简单好用的瀑布流


平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 4.15 app-vue × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
× × × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × ×

瀑布流插件

本插件采用相对定位实现瀑布流效果

属性 类型 默认值 说明
column Number 2 瀑布流分栏
gap Nubmer 20 块之间的距离(rpx)
autoLoad Boolean true 是否自动加载块的高度,如果需要加载图片,设置false,在图片load事件调用api
<template>
    <view class="container">
        <waterfall ref="waterfall" @onRenderEnd="">
            <template v-slot:default="{list}">
                <waterfall-item v-for="(item, index) in list" :key="index" :autoLoad="false" :top="item.top" :left="item.left"
                    :width="item.width" :visible="item.visible" :load="item.load" @shaping="onShaping($event, index)">
                    <!-- 自定义内容区域 -->
                    <view class="card" @click="onAdd(index, item)">
                        <view class="picture">
                            <image :src="item.picture" mode="widthFix" @load="onLoadImg(index)"></image>
                        </view>
                        <view class="content">
                            {{index}}-{{item.text}}
                        </view>
                        <view>{{item.count}}</view>
                    </view>
                </waterfall-item>
            </template>
        </waterfall>
    </view>
</template>

<script>
    import Waterfall from '@/uni_modules/bingo-waterfall/components/bingo-waterfall/waterfall.vue';
    import WaterfallItem from '@/uni_modules/bingo-waterfall/components/bingo-waterfall/waterfall-item.vue';

    export default {
        onPullDownRefresh() {
            this.$refs.waterfall.onReset();
            this.fetchList();
        },
        onReachBottom() {
            this.fetchList();
        },
        methods: {
            fetchList() {
                const list = [];
                const type = 'reset'; // reset:初次加载数据  inset:插入数据
                this.$refs.waterfall.onInject(list, type);
            },
            onShaping(height, index) {
                this.$refs.waterfall.onUpdateHeight(height, index);
            },
            onLoadImg(index) {
                // 仅在autoLoad为false时调用
                this.$refs.waterfall.onLoadItem(index);
            },
            onAdd(index, record) {
                record.count += 1;
                this.$refs.waterfall.onUpdateItem(index, record);
            },
            () {
                uni.stopPullDownRefresh();
                uni.hideLoading();
            }
        },
        components: {
            Waterfall,
            WaterfallItem
        }
    }
</script>

完美支持上拉加载更多和下拉刷新

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问